比如我有个字段里面的字符串是  '[某某类型]-某某商品'我想用oracle里面的正则函数把改字符串'[某某类型]-'去掉最后改成这样 '某某商品'SELECT regexp_replace(s.name,'xxxx','') a FROM table s这个怎么做~求教啊

解决方案 »

  1.   

    那列长度不一样撒。。这样好了~SELECT REGEXP_REPLACE('[某某类型]-某某商品','\[.*\]-','')   FROM DUAL; 
      

  2.   

    SUBSTR和正则表达式的REPLACE都可以的,不过正则表达式只有10G才支持,假如你这样写,数据库版本不一样那就悲剧了——
    用SUBSTR 还是可以解决未知字段长度求截取后四位的。这个思考一下就可以。
      

  3.   

    SELECT 
           substr(字段,Instr(字段,'-',1)+1,LENGTH(字段))
    FROM 表
    ;
      

  4.   

    恩  substr和instr配合就可以搞定