我想更新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;

10-07 19:44
查看更多