是否有某種方式可以刪除表中存在的重複記錄。我只希望查詢中刪除一條記錄並將其中的其餘部分刪除。這可以通過查詢完成。 請建議刪除重複記錄
Q
刪除重複記錄
0
A
回答
5
試試這個 -
身份加入ID列到表中第一個 -
alter <tablename> add id INT IDENTITY
然後使用下面的查詢來刪除重複記錄 -
delete
FROM <tablename>
WHERE id IN
(
SELECT MAX(id)
FROM <tablename>
GROUP BY <columnnames defining uniqueness>
having count (*) > 1
)
請考慮到,那它只刪除一個現有行的副本。如果存在共享分組條件的三行 - 除非多次執行查詢(直到沒有行被刪除)或更改刪除條件,否則這將不起作用。
0
使用distinct
:
SELECT distinct * FROM Table ....
0
這主要取決於你的表結構,約束上的數量已經和列的,如果有任何主鍵的數量。
您需要找到optmized查詢,它將基於上述約束條件來識別唯一記錄,然後最重要的是您需要考慮根據查詢刪除這些重複項所用的時間。
所以沒有人可以發表評論,除非你發佈完整的結構和一些示例重複數據。
希望這個小輸入有幫助。
0
下面是刪除重複記錄
Create table #Test (colA int not null, colB int not null, colC int not null, id int not null identity) on [Primary]
GO
INSERT INTO #Test (colA,colB,colC) VALUES (1,1,1)
INSERT INTO #Test (colA,colB,colC) VALUES (1,1,1)
INSERT INTO #Test (colA,colB,colC) VALUES (1,1,1)
INSERT INTO #Test (colA,colB,colC) VALUES (1,2,3)
INSERT INTO #Test (colA,colB,colC) VALUES (1,2,3)
INSERT INTO #Test (colA,colB,colC) VALUES (1,2,3)
INSERT INTO #Test (colA,colB,colC) VALUES (4,5,6)
GO
Select * from #Test
GO
Delete from #Test where id <
(Select Max(id) from #Test t where #Test.colA = t.colA and
#Test.colB = t.colB and
#Test.colC = t.colC)
GO
Select * from #Test
GO
相關問題
- 1. 刪除「重複」記錄
- 2. XSL刪除重複記錄
- 3. AngularJS - 刪除重複記錄
- 4. Mysql - 刪除重複記錄
- 5. oracle |刪除重複記錄
- 6. 刪除重複記錄
- 7. 刪除重複記錄?
- 8. ActiveRecord:刪除重複記錄
- 9. Python重複數據刪除記錄 - 重複數據刪除
- 10. 如何從sql表中刪除除重複記錄之外的重複記錄?
- 11. 刪除除一個重複記錄以外的所有記錄
- 12. Firebird SQL刪除重複記錄
- 13. Oracle:批量刪除重複記錄
- 14. 有效刪除所有重複記錄
- 15. 刪除sql表中的重複記錄
- 16. 刪除重複記錄的SQL Server
- 17. 刪除重複記錄保持原有
- 18. 刪除列表中的重複記錄
- 19. MySQL記錄重複數據刪除
- 20. 從視圖中刪除重複記錄
- 21. 刪除特定的重複記錄
- 22. 與原始記錄刪除重複
- 23. 查詢刪除重複記錄
- 24. 如何刪除重複記錄
- 25. 刪除重複記錄包括原始
- 26. 刪除重複記錄在SQL Server
- 27. 從表中刪除重複記錄
- 28. 在SAS中刪除重複記錄
- 29. 刪除重複的XML記錄
- 30. 刪除表中的重複記錄
有樣品的例子,但你應該學會這兩個搜索現有的答案和接受回答您存在的問題。 – 2010-08-02 07:06:50
您使用的是什麼RDBMS?你最近的10個問題中有沒有得到滿意的回答?如果是的話,你能接受這些答案嗎? – 2010-08-02 09:15:39
如果你使用MySQL,你可能想從昨天看看這篇文章:http://stackoverflow.com/questions/3383898/remove-duplicates-using-only-a-mysql-query – 2010-08-02 09:39:49