我有这个varchar:abcd / FR / efgh,我想用xxxx / FR / xxxx替换它 例如:
<tree colors="<color_name>:<condition>">
我知道如何在oracle中做到这一点吗?
答案 0 :(得分:1)
通过使用多个字符串函数,例如rpad
,instr
,substr
和length
:
select
case
when s not like '%_/%/_%' then s
else
rpad('x', instr(s, '/', 1, 1) - 1, 'x')
|| '/' ||
substr(s, instr(s, '/', 1, 1) + 1, instr(s, '/', 1, 2) - instr(s, '/', 1, 1) - 1)
|| '/' ||
rpad('x', length(s) - instr(s, '/', 1, 2), 'x')
end s
from tablename
用列名替换s
。
请参见demo。
结果:
> | S |
> | :--------------- |
> | xxxx/FR/xxxx |
> | xxxxx/BE/xxxxxxx |
> | /BE/as |