是否有某种方式可以删除表中存在的重复记录。我只希望查询中删除一条记录并将其中的其余部分删除。这可以通过查询完成。 请建议删除重复记录
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. Mysql - 删除重复记录
- 2. AngularJS - 删除重复记录
- 3. 删除重复记录?
- 4. 删除重复记录
- 5. XSL删除重复记录
- 6. oracle |删除重复记录
- 7. Python重复数据删除记录 - 重复数据删除
- 8. 删除除一个重复记录以外的所有记录
- 9. 在SAS中删除重复记录
- 10. 删除SQL Server中的重复记录?
- 11. Firebird SQL删除重复记录
- 12. 删除重复的XML记录
- 13. 如何删除重复记录
- 14. MySQL CrossTab并删除重复记录
- 15. 使用MapReduce删除重复的记录
- 16. 从表中删除重复记录
- 17. 与原始记录删除重复
- 18. 删除特定的重复记录
- 19. Oracle:批量删除重复记录
- 20. MySQL记录重复数据删除
- 21. GROUP BY不会删除重复记录
- 22. 删除表中的重复记录
- 23. 从表中删除重复记录
- 24. 删除重复记录保留1
- 25. 删除重复记录在SQL Server
- 26. 删除列表中的重复记录
- 27. 查询删除重复记录
- 28. 删除db2中的所有重复记录。 (不只是重复的记录)
- 29. 删除重复记录而保留一个记录
- 30. 合并表(9M记录)并删除重复记录
有样品的例子,但你应该学会这两个搜索现有的答案和接受回答您存在的问题。 – 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