我们有varchar2(250)列,其中包含我们要用其他特定文本替换的各种文本数据。 注意:我不想为这个要求使用多个替换功能,有没有更好的方法呢
要求是:
Replace < with "less than"
Replace > With "greater than"
Replace & With and
例如,表中的数据是:
"amount must be < 1 & > 2"
SQL的输出应为:
"amount must be greater than 1 and less than 2"
答案 0 :(得分:1)
据我所知你必须使用3个替换语句。这样的事情: -
SELECT REPLACE( REPLACE( REPLACE ('amount must be < 1 & > 2', '<', 'less than'), '>' ,'greater than'), '&', 'and')
FROM DUAL;
我认为这只是解决方案。
答案 1 :(得分:1)
你需要使用 REPLACE 三次,这不是很费力。
SQL> WITH DATA AS(
2 SELECT 'amount must be < 1 & > 2' str FROM dual
3 )
4 SELECT REPLACE(REPLACE(REPLACE(str, '<', 'less than'), '&','and'),'>','greater than') str
5 FROM DATA
6 /
STR
---------------------------------------------
amount must be less than 1 and greater than 2
SQL>
答案 2 :(得分:1)
使用replace
功能
SELECT Replace(
Replace(
Replace(a, '>', 'greater than'),
'<', 'lesser than'),
'&', 'and')
FROM Yourtable