SELECT REGEXP_REPLACE('0001aaa00002', '0001|0002', '----') from
dual
这样,运行结果就为:----aaa0----
其中,0001|0002代表的是正则表达式。
上面的语句对应为:REGEXP_REPLACE(treeid,'0001|0002','----')
如果不是10g以上的话,则只能:repalce(replace(treeid,'0001','----'),'0002','----')
比如:
我想实现一个操作,比如tb1表中有个字段step
,里面有会出现一个或者多个用逗号分隔的字符串,比如:300,600;400,500;200;等等,没有规律性。我现在想把出现的数字用replace替换掉。比如300代表总部,400代表省,500代表地市。
当step字段的值是 300,500就替换成“省,市”。
请问如何写这个replace语句?
[TEST1@kokooa]>select * from t1;
NAME
--------------------
300,500
[TEST1@kokooa]>select replace(name,'300','总部') from
t1;
REPLACE(NAME,'300','总部')
--------------------------------------------------------------------------------
总部,500
[TEST1@kokooa]>select
replace(replace(name,'300','总部'),'500','市') from t1;
REPLACE(REPLACE(NAME,'300','总部'),'500','市')
--------------------------------------------------------------------------------
总部,市
如果还有其它的数字,依此类推