考虑名为EmployeeName
表Employee
的列。目标是根据EmployeeName
字段删除重复的记录。
EmployeeName
------------
Anand
Anand
Anil
Dipak
Anil
Dipak
Dipak
Anil
我要使用一个查询,删除重复的记录。
如何在SQL Server中使用TSQL做到这一点?
最佳答案
您可以使用窗口功能执行此操作。它将根据empId对重复对象进行排序,并删除除第一个对象之外的所有对象。
delete x from (
select *, rn=row_number() over (partition by EmployeeName order by empId)
from Employee
) x
where rn > 1;
运行它作为选择以查看将要删除的内容:
select *
from (
select *, rn=row_number() over (partition by EmployeeName order by empId)
from Employee
) x
where rn > 1;