2

我需要更新表中的列,如果该列具有空值或与输入不同的值。

是否可以在单个 sql 查询中执行此操作。?我的数据库是 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
4

1 回答 1

3

尝试将条件移至 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
      )

这应该最大限度地减少对触发器的调用。

于 2012-09-07T18:13:30.533 回答