0
A
回答
0
最簡單的方法來做到這一點,是每行都有一個唯一的標識符,所以如果你還沒有一個,創建一個名爲「row_id」的新列並設置它到自動編號保存表格,你現在應該在每一行有一個唯一的ID
接下來,你可以構造一個大的醜陋的sql來做你所需要的,但是如果你的表很大,它將不會很好地執行使用子查詢,所以最好使用臨時表來保存重複的行,然後引用它作爲刪除語句。
所以首先識別重複項,並存儲最小行ID
SELECT a.SerWorkNumber, a.SerialNo, a.Type, Min(a.row_id) AS MinOfrow_id INTO CD_FD_Dups
FROM CD_FD AS a
GROUP BY a.SerWorkNumber, a.SerialNo, a.Type
HAVING count(1) > 1;
接下來,從實際的表中刪除引用上面創建的臨時表:
DELETE
FROM CD_FD AS a
WHERE EXISTS (
SELECT 1
FROM CD_FD_Dups d
WHERE d.SerWorkNumber = a.SerWorkNumber
and d.SerialNo = a.SerialNo
and d.Type = a.Type
and a.row_id > d.MinOfrow_id
);
相關問題
- 1. 通過SQL刪除重複條目?
- 2. 使用除非考慮到重複
- 3. 刪除重複的條件
- 4. 刪除條件重複值
- 5. 不考慮條件
- 6. 刪除重複行而不考慮主鍵
- 7. 如何刪除考慮阿拉伯語音標的重複行
- 8. 刪除具有條件的特定重複數據
- 9. 刪除具有特定條件的重複項sql
- 10. 通過TFS API刪除特定套件
- 11. 不考慮重複在SQL
- 12. 如何從考慮參數值的XML文件中刪除重複元素
- 13. 刪除特定的重複記錄
- 14. InfoPath - 刪除特定的重複部分
- 15. 刪除特定組合的重複項
- 16. 刪除通過陣列時的重複
- 17. 通過條件重定向?
- 18. 刪除重複的條目
- 19. Javascript - 刪除重複條目
- 20. 刪除重複的條目?
- 21. 刪除重複條件到列值
- 22. 刪除符合條件的重複行
- 23. 刪除重複的基礎條件
- 24. Informatica Cloud:刪除重複的條件
- 25. 根據條件刪除重複項
- 26. 刪除通過獨特價值重複另一列
- 27. 刪除列,以行跨度考慮
- 28. CodeIgniter通過ID刪除特定會話
- 29. 刪除特定條目
- 30. 根據條件刪除特定列
什麼版本的SQL您使用的是? –
謝謝@Tim Biegeleisen。我用MSACCESS – Sero
我寫的代碼是 > DELETE CD_FD。[SerWorkNumber],CD_FD。[的SerialNo],CD_FD。[ServiceCenter],CD_FD。[ReceivedDate],CD_FD。[類型] FROM CD_FD WHERE((( CD_FD。[SerWorkNumber])In(SELECT [SerWorkNumber] FROM [CD_FD] As Tmp GROUP BY [SerWorkNumber] HAVING Count(*)> 1))AND((CD_FD。[Type])=「CD」)); – Sero