我需要更新表中的列,如果列的null或值与输入不同。
是否可以在单个SQL查询中执行此操作。我的db是db2
我已经尝试了以下一个,但即使没有更改,它也在更新。我不想那样。
UPDATE ABC
SET AG = CASE
WHEN AG IS NULL
OR AG <> 1000010
THEN 1000010
ELSE AG
END,
P = CASE
WHEN P IS NULL
OR P <> 1235
THEN 1235
ELSE P
END
WHERE c = 607
答案 0 :(得分:2)
尝试将条件移动到WHERE子句:
UPDATE ABC
SET AG = 1000010 ,
P = 1235
WHERE c = 607 and
(AG IS NULL OR AG <> 1000010 or
P is NULL or P <> 1235
)
这应该最小化对触发器的调用。