SQL:如果匹配字符串,如何替换整个字段?

时间:2018-09-26 06:19:16

标签: mysql sql string oracle replace

当它与某个字符串匹配时,我正在尝试从数据库中替换整个字段。

例如: TABLE_FRUITS包含

ID     NAME
---------------
1      APPLE
2      ORANGE
3      PASSIONFRUIT
4      BANANA
5      DRAGONFRUIT
6      KIWI
7      STRAWBERRY FRUIT

现在,如果我尝试选择列NAME,并且如果某个字段包含字符串“ FRUIT”,则应将整个字段替换为另一个字符串,例如“ SAMPLE”。

预期结果:

select NAME from TABLE_FRUITS;

将返回:

APPLE
ORANGE
SAMPLE
BANANA
SAMPLE
KIWI
SAMPLE

我不确定是否应该使用replace或substr / instr。

3 个答案:

答案 0 :(得分:1)

如果您使用的是MySQL,则可以使用类似的

SELECT IF(NAME LIKE '%FRUIT%', 'SAMPLE', NAME) AS NAME FROM TABLE_FRUIT

在其他各种SQL中,您可能需要使用CASE表达式:

SELECT CASE WHEN NAME LIKE '%FRUIT%' THEN 'SAMPLE' ELSE NAME END AS NAME FROM TABLE_FRUIT

答案 1 :(得分:1)

在以下情况下的用例:

select case when name like '%fruit%' then 'Sample' else name end from tablename

答案 2 :(得分:0)

您可以使用CASE

select case when name like '%FRUIT%' then 'sample' else name end 
from table_fruit