如何查出同一张表中字段值重复的记录

来源:未知 责任编辑:责任编辑 发表时间:2014-01-06 18:19 点击:
Java
比如现在有一人员表(表名:peosons) 若想将姓名、身份证号、住址这三个字段完全相同的记录查询出来  
select p1.* from persons p1,persons p2  
where p1.idp2.id and p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address 可以实现上述效果.  
几个删除重复记录的SQL语句  
1.用rowid方法  
2.用group by方法  
3.用distinct方法  
1.用rowid方法  
据据oracle带的rowid属性,进行判断,是否存在重复,语句如下:  
查数据:  
     select * from table1 a where rowid !=(select   max(rowid)  
     from table1 b where a.name1=b.name1 and a.name2=b.name2......)  
删数据:  
    delete   from table1 a where rowid !=(select   max(rowid)  
     from table1 b where a.name1=b.name1 and a.name2=b.name2......)  
2.group by方法  
查数据:  
  select count(num), max(name) from student --列出重复的记录数,并列出他的name属性  
  group by num  
  having count(num) >1 --按num分组后找出表中num列重复,即出现次数大于一次  
删数据:  
  delete from student  
  group by num  
  having count(num) >1  
  这样的话就把所有重复的都删除了。  
3.用distinct方法 -对于小的表比较有用  
create table table_new as   select distinct *   from table1 minux  
truncate table table1;  
insert into table1 select * from table_new;  
查询及删除重复记录的方法大全  
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)  
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)  
5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录  
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Request.ServerVariables 参数大全
  • 执行全文索引时出现权限不足的解决方法
  • 导入excel文件处理流程节点的解决方案
  • 查看sql修改痕迹(SQL Change Tracking on Table)
  • App数据层设计及云存储使用指南
  • PostgreSQL启动过程中的那些事三:加载GUC参数
  • MongoDB安装为Windows服务方法与注意事项
  • Percolator与分布式事务思考(二)
  • 写给MongoDB开发者的50条建议Tip1
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1