2

列に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
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 に答える