我想刪除表中的行(創建另一個作爲更新版本),如果其中任何具有空值刪除註冊表中如果有一列在SQL Server中的NULL值2008
例如
att1 att2 att3
-----------------
1.0 2.9 NULL
23.6 7.9 8.9
43.6 6.9 1.9
,並得到
att1 att2 att3
-----------------
23.6 7.9 8.9
43.6 6.9 1.9
將如何做到這一點的最好辦法?
我想刪除表中的行(創建另一個作爲更新版本),如果其中任何具有空值刪除註冊表中如果有一列在SQL Server中的NULL值2008
例如
att1 att2 att3
-----------------
1.0 2.9 NULL
23.6 7.9 8.9
43.6 6.9 1.9
,並得到
att1 att2 att3
-----------------
23.6 7.9 8.9
43.6 6.9 1.9
將如何做到這一點的最好辦法?
最簡單的方法
DELETE FROM T
WHERE att1 IS NULL
OR att2 IS NULL
OR att3 IS NULL
如果你在某些時候有柱的負荷,這可能變得更簡單。
DELETE FROM T
WHERE EXISTS (SELECT *
FROM (VALUES(att1),
(att2),
(att3)) V(att)
WHERE att IS NULL)
您也可以考慮像
DELETE FROM T
WHERE att1 + att2 + att3 IS NULL
,但可能會導致具有潛在的溢出錯誤不必要的問題。
另一種可能性:'WHERE(att1 = att1 AND att2 = att2 AND att3 = att3)IS NULL' – 2012-02-11 23:04:20
假設所有列均爲數字...
DELETE FROM myTable WHERE att1+att2+att3 IS NULL
這將刪除** all **爲空的行。不**任何**爲空。 – 2012-02-11 22:07:05
糟糕。你是對的馬丁。我更新了我的答案。謝謝。 – Diego 2012-02-11 22:36:40
你是什麼意思'創建另一個作爲更新的版本'? – 2012-02-11 21:42:15