我試圖清理SQL Server中的一些數據,並在兩個表之間添加一個外鍵。排除空值在子查詢中返回0行
我想刪除一個表中的大量孤行。我不知道爲什麼以下查詢將在MS SQL服務器中返回0行。
- 這查詢不返回行
SELECT * FROM tbl_A其中ID不
(從tbl_B 選擇不同的ID)當我有沒有在子查詢,我得到空我期望的結果。
- 返回行包含所有的tbl_A的記錄,但不能在tbl_B
SELECT * FROM tbl_A其中ID不是(從tbl_B 選擇不同的ID,其中ID不爲null)
ID列可以爲空並且包含空值。如果我只運行子查詢,我會得到完全相同的結果,除了第一個查詢返回一個額外的NULL行像預期的那樣。
[SQL NOT IN約束和NULL值]的可能重複(http://stackoverflow.com/questions/129077/sql-not-in-constraint-and-null-values) –