且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何在表中找到所有重复记录?

更新时间:2023-01-22 09:23:01

您只需要这样:

You need only this:
SELECT Name, city
FROM EMP
GROUP BY Name, city
HAVING COUNT(*)>1





另一个 SELECT 语句是多余的!


要仅显示两个列,请减少所选列:
To show only two colums, reduce the columns you select:
select a.Name, a.city from EMP a join(select Name,city from EMP group by Name,city having count (*)>1)b
on a.Name=b.Name
and a.city=b.city





To仅显示不同的结果:



To show distinct results only:

select distinct a.Name, a.city from EMP a join(select Name,city from EMP group by Name,city having count (*)>1)b
on a.Name=b.Name
and a.city=b.city


查找重复记录

To find duplicate records
select Name,city,count(*) Cnt from TableName group by Name,city having count(*)>1



从表中删除重复记录


To delete duplicate records from table

;with del as
(select row_number() over(partition by Name,city order by Name,city) as rownumber,* from TableName)
delete from del where rownumber >1