删除重复记录

abh*_*ngh 0 sql

有没有办法可以删除表中存在的重复记录.我只想要一条记录,其余的记录将被查询删除.这可以通过查询来完成.请建议

Sac*_*hag 5

试试这个 -

首先将ID列作为IDENTITY添加到您的表中 -

alter <tablename> add id INT IDENTITY
Run Code Online (Sandbox Code Playgroud)

然后使用以下查询删除重复记录 -

delete 
FROM <tablename>
WHERE id IN
(
SELECT MAX(id)
FROM <tablename>
GROUP BY <columnnames defining uniqueness>
having count ( * )   > 1
)
Run Code Online (Sandbox Code Playgroud)

请注意,它只删除现有行的一个副本.如果有三行共享分组条件 - 这将不起作用,除非您多次执行查询(直到没有删除任何行)或更改删除条件.