考虑名为EmployeeNameEmployee的列。目标是根据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;

09-25 18:58