我想知道这是否可能。如果条件为真,我希望更新列x,否则将更新列y
UPDATE table SET
(CASE (CONDITION) WHEN TRUE THEN columnx
ELSE columny
END)
= 25
我找遍了所有地方,尝试了一些东西,但还是找不到解决方案。我认为这是不可能的,但我想我应该在这里问一下,看看以前是否有人这样做过。提前谢谢。
发布于 2011-01-28 23:55:22
UPDATE table
SET columnx = CASE WHEN condition THEN 25 ELSE columnx END,
columny = CASE WHEN condition THEN columny ELSE 25 END
发布于 2019-07-01 21:37:09
我知道这是一个非常古老的问题,但这对我很有效:
UPDATE TABLE SET FIELD1 =
CASE
WHEN FIELD1 = Condition1 THEN 'Result1'
WHEN FIELD1 = Condition2 THEN 'Result2'
WHEN FIELD1 = Condition3 THEN 'Result3'
END;
问候
发布于 2018-12-13 09:19:53
我知道这是一个非常老的问题,这个问题被标记为已修复。但是,如果有人遇到像我这样情况,其中表具有用于更新事件上的数据记录的触发器,那么这将导致问题。这两列都将获得更新,而日志将生成无用的条目。我做的方式
IF (CONDITION) IS TRUE
BEGIN
UPDATE table SET columnx = 25
END
ELSE
BEGIN
UPDATE table SET columny = 25
END
现在,这还有另一个好处,那就是它不会像上面的解决方案那样在表上进行不必要的写入。
https://stackoverflow.com/questions/4830191
复制相似问题