我对SQL很陌生,我想知道是否可以使用条件更新列。
我有两列,只有第一个(A)中有东西时才想更新第二个(B):
'UPDATE Table1 SET ColumnB = (SELECT BG FROM Table2 WHERE Table1.ColumnC = BG.ColumnZ)'
如何避免将更新应用于列A为空的行?
答案 0 :(得分:2)
如果您只想更新匹配位置,则一种方法使用EXISTS
:
UPDATE Table1
SET ColumnB = (SELECT BG FROM Table2 t2 WHERE table1.ColumnC = t2.ColumnZ)
WHERE EXISTS ( SELECT BG FROM Table2 t2 WHERE table1.ColumnC = t2.ColumnZ );
如果您只想更新第一个表具有非NULL
值的位置,请在外部查询中使用WHERE
:
UPDATE Table1
SET ColumnB = (SELECT BG FROM Table2 t2 WHERE table1.ColumnC = t2.ColumnZ)
WHERE ColumnB IS NOT NULL;