我想更新表A,如果需要表列的属性,那么只有它会改变,否则它不会改变..
Update table A set B="abcd",C= (case when C="abc" then C="abcd" else C end) where column =1;
意味着C只应在列= 1时更改,C值为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;