我想更新tableA
的方式是,如果需要table列的属性,那么只有它会改变,否则它不会改变。
Update table A set B="abcd" ,C= (case when C="abc" then C="abcd" else C end) where column =1;
意味着
C
只应在column=1 and C value is abc
中更改,否则不应更新C
。应将其删除,并且只应更改B
。但如果C
值匹配,即abc给出输出0。不改为ABCD 最佳答案
在THEN
部分中,C="abcd"
将C
与值进行比较,并返回1或0。
整个CASE
表达式应该只返回一个值,然后将其写入C
列中,因此您只需要将'abcd'
放在这里:
UPDATE tableA
SET B = 'abcd',
C = CASE
WHEN C = 'abc' THEN 'abcd'
ELSE C
END
WHERE column = 1;