PLSQL检查列值并将其替换为空白

时间:2017-12-07 08:10:18

标签: oracle plsql

有一列名为'Type',它将包含多个逗号分隔值。

我必须检查它是否包含'Test1','Test2 Test3''Test4'并将其替换为空白。怎么做?

我尝试在列值中找到这些单词并使用replace函数,但它不会清除值之前/之后的逗号。

此外,如果我用空格替换逗号,它将在所有值之前和之后得到替换。我还想确保我的代码消耗最少的执行时间,如果我逐个为所有记录使用三个不同的更新函数,这显然是不可能的。

1 个答案:

答案 0 :(得分:0)

如果您只想用空白

替换匹配的单词(特定值)
SELECT REPLACE('Test1 and Test2','Test1','') "Changes" 
FROM DUAL;

如果要在匹配模式时将整个值替换为空白

SELECT CASE WHEN 'Test1 and Test2' LIKE '%Test1%' THEN '' END 
FROM DUAL;