天天看點

SQLSERVER 删除重複記錄

1、查找表中多餘的重複記錄,重複記錄是根據單個字段(peopleId)來判斷

select 

* from people

where peopleId in (select peopleId from 

people group by peopleId having count(peopleId) 

> 1) 

2、删除表中多餘的重複記錄,重複記錄是根據單個字段(peopleId)來判斷,隻留有rowid最小的記錄

delete 

from people

where peopleId in (select peopleId from 

people group by peopleId having 

count(peopleId) > 1)

and rowid not in (select min(rowid) from 

people group by peopleId having count(peopleId 

)>1)

3、查找表中多餘的重複記錄(多個字段)

select * from vitae a

where (a.peopleId,a.seq) 

in (select peopleId,seq from vitae group by peopleId,seq having 

count(*) > 1)

4、删除表中多餘的重複記錄(多個字段),隻留有rowid最小的記錄

delete from vitae a

where 

(a.peopleId,a.seq) in (select peopleId,seq from vitae group by 

peopleId,seq having count(*) > 1)

vitae group by peopleId,seq having count(*)>1)

5、查找表中多餘的重複記錄(多個字段),不包含rowid最小的記錄

(二)

比方說

在A表中存在一個字段“name”,

而且不同記錄之間的“name”值有可能會相同,

現在就是需要查詢出在該表中的各記錄之間,“name”值存在重複的項;

Select 

Name,Count(*) From A Group By Name Having Count(*) > 1

如果還查性别也相同大則如下:

Select Name,sex,Count(*) From A Group By Name,sex Having 

Count(*) > 1

本文轉自tiasys部落格園部落格,原文連結:http://www.cnblogs.com/tiasys/archive/2012/09/22/2697728.html,如需轉載請自行聯系原作者

繼續閱讀