SQL:需要在多列中替换相同的值

时间:2013-01-25 19:22:16

标签: sql

我需要编写一个查询,在多列中查找单个值然后更新 存在该值的那些列。

需要替换的值位于以_m1

结尾的列中

示例表:

o_id   a_m1   a_m2   b_m1   b_m2
1      bb     cc     bb     cc
2      cc     null   bb     cc

我需要在以_m1结尾的列中找到所有“cc”值,然后将这些列更新为“bb”

1 个答案:

答案 0 :(得分:0)

UPDATE TABLENAME
  SET a_m1=REPLACE(a_m1,'cc','bb'),
      b_m1=REPLACE(b_m1,'cc','bb')

OR

SELECT a_m1 = CASE WHEN a_m1='cc' THEN 'bb' ELSE a_m1 END,
       b_m1 = CASE WHEN b_m1='cc' THEN 'bb' ELSE b_m1 END

注意:

这些做了两件事 - 我不确定你想要什么。

他们都只修改a_m1和b_m1。

cc出现的字符串中的第一个位置替换为bb

如果值恰好等于cc,则在第二个值中,它会更改为bb,否则不会更改。