我需要使用REGEXP_REPLACE执行以下操作:
If word starts with 'ABCD' then replace first four(4) chars with 'FFFF'
else
If word starts with 'XYZ' then replace first three(3) chars with 'GGG'
如何使用REGEXP_REPLACE进行条件替换?
答案 0 :(得分:2)
您可以使用case
和字符串操作:
select (case when word like 'ABCD%'
then 'FFFF' || substr(word, 5)
when word like 'XYZ%'
then 'GGG' || substr(word, 4)
else word
end) as new_word
答案 1 :(得分:1)
如果必须为REGEXP_REPLACE
,则必须合并两个函数调用:
REGEXP_REPLACE(
REGEXP_REPLACE(word,'^ABCD','FFFF')
,'^XYZ', 'GGG')
但是我会喜欢戈登的case
方法...