Server中的重复记录

Server中的重复记录

本文介绍了删除SQL Server中的重复记录?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

考虑名为 EmployeeName Employee 的列。目标是根据 EmployeeName 字段删除重复的记录。

  EmployeeName 
------------
Anand
Anand
Anil
Dipak
Anil
Dipak
Dipak
Anil

使用一个查询,我想删除重复的记录



如何在SQL Server中使用TSQL?

解决方案

p>您可以使用窗口功能来执行此操作。它将通过empId命令重复,并删除除第一个之外的所有数据。

 从(
select * ,rn = row_number()over(分区由EmployeeName order by empId)
从Employee
)x
其中rn> 1;

运行它作为选择,看看会被删除:


$ (
select *,rn = row_number()over(分区按EmployeeName order by empId)
from Employee(


)x
其中rn> 1;


Consider a column named EmployeeName table Employee. The goal is to delete repeated records, based on the EmployeeName field.

EmployeeName
------------
Anand
Anand
Anil
Dipak
Anil
Dipak
Dipak
Anil

Using one query, I want to delete the records which are repeated.

How can this be done with TSQL in SQL Server?

解决方案

You can do this with window functions. It will order the dupes by empId, and delete all but the first one.

delete x from (
  select *, rn=row_number() over (partition by EmployeeName order by empId)
  from Employee
) x
where rn > 1;

Run it as a select to see what would be deleted:

select *
from (
  select *, rn=row_number() over (partition by EmployeeName order by empId)
  from Employee
) x
where rn > 1;

这篇关于删除SQL Server中的重复记录?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-12 13:38