我希望以这样的方式更新表A
,如果需要表列的属性,那么只有它会改变,否则它不会改变..
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
答案 0 :(得分:6)
在THEN
部分内,C="abcd"
将C
与值进行比较,并返回1或0。
整个CASE
表达式应该返回一个值,然后将其写入C
列,因此您只想在此处'abcd'
:< / p>
UPDATE tableA
SET B = 'abcd',
C = CASE
WHEN C = 'abc' THEN 'abcd'
ELSE C
END
WHERE column = 1;
答案 1 :(得分:0)
如果我理解正确,你会尝试做两件事:
UPDATE A set B = 'abcd' WHERE column = 1
UPDATE A set C = 'abcd' WHERE C = 'abc' AND column = 1
是吗?如果是这样,你能用两个简单的陈述而不是一个复杂的陈述吗?