在MS SQL Server中我試圖從表中刪除帶有空值的重複項。哼哼哼。很多很多NULL
s。底線是我需要保留有或沒有NULL
s的任何重複記錄的一個副本。我基本上希望NULL
在操作期間像正常記錄一樣操作,值爲「NULL
」,然後再回到實際NULL
。這可能嗎?有一個更簡單的解決方案嗎?刪除重複...用空值
Table1
樣子:
UID Data1 Data2
1 A NULL
2 A NULL
3 B abc
4 B abc
5 C NULL
6 D ghj
我希望命令扔掉線2和4,並保持休息。 (SELECT用於測試。)
;SELECT UID, Data1, Data2
FROM Table1 AS T
WHERE NOT EXISTS (
SELECT 1
FROM table1 AS T2
WHERE
T2.Data1 = T.Data1
AND T2.Data2 = T.Data2
AND T2.UID >= T.UID
)
AND Data1 IS NOT NULL
注意:SELECT DISTINCT將不起作用,因爲重複項具有不同的時間戳。
可憐的電腦正在融化,但它工作! – user2366153 2013-05-14 15:13:30
@ user2366153哎喲,抱歉讓你的電腦熔化 – Lamak 2013-05-14 15:26:45
Soo ..更新到問題。我不能在沒有首先將它作爲SELECT進行測試的情況下運行它,並且在幾分鐘後拋出System.outofmemory。任何首先要做排序的方法,然後以大約1000萬條記錄的「塊」的方式來做到這一點? – user2366153 2013-05-14 18:43:59