查询同一表内多字段同时重复记录的SQL语句.docVIP

查询同一表内多字段同时重复记录的SQL语句.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
查询同一表内多字段同时重复记录的SQL语句

比如现在有一人员表??(表名: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最小的记录 select * from vitae a where (a.peopleId,a.seq) in? (select peopleId,seq from vitae group by peop

文档评论(0)

hhuiws1482 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档