您的位置:首页 > 数据库

----------删除数据库中重复记录的SQL语句(转)--------------------

2016-08-11 22:26 567 查看
在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢? 

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 

Java代码  


select * from people  

where peopleId in (select  peopleId 

                       from people  

                           group  by  peopleId 

                           having  count(peopleId) > 1)
 

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 

Java代码  


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、查找表中多余的重复记录(多个字段) 

Java代码  


select * from vitae a  

where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq  having count(*) > 1)  

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录 

Java代码  


delete from vitae a  

where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)  

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录 

Java代码  


select * from vitae a  

where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: