博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL 之 查询操作重复记录
阅读量:5107 次
发布时间:2019-06-13

本文共 1430 字,大约阅读时间需要 4 分钟。

  有时,我们的数据表中会存在一些冗余数据,这就要求我们查询并操作这些冗余数据。

一、查询表中重复记录

  例如,查找重复记录是根据单个字段(peopleId)来判断 

SELECT * FROM Tpeople   WHERE peopleId IN ( SELECT peopleId FROM Tpeople GROUP BY peopleId HAVING COUNT(peopleId) > 1)

二、删除表中多余的重复记录

  例如,重复记录是根据单个字段(peopleId)来判断,只保留最先增加的记录,下面是保留ID最小的记录

DELETE FROM Tpeople   WHERE peopleName IN ( SELECT peopleName FROM Tpeople GROUP BY peopleName HAVING COUNT(peopleName)>1)     AND peopleId NOT IN ( SELECT MIN(peopleId) FROM Tpeople GROUP BY peopleName HAVING COUNT(peopleName)>1)

三、查找表中多余的重复记录(多个字段)

  A,DB2中可以如下查询

SELECT * FROM vitae TA WHERE (TA.peopleId, TA.seq) IN ( SELECT peopleId,seq FROM vitae TB GROUP BY peopleId,seq HAVING COUNT(*) > 1)

  B,SQLServer如下查询

SELECT * FROM vitae TA WHERE EXISTS ( SELECT * FROM vitae TB WHERE TB.peopleId=TA.peopleId AND TB.seq =TA.seq GROUP BY peopleId,seq HAVING COUNT(1) > 1)

四、删除表中多余的重复记录(多个字段),只留有最先插入的记录

  A,DB2中可以如下删除

DELETE FROM vitae TA  WHERE (TA.peopleId,TA.seq) IN (SELECT peopleId,seq FROM vitae TB GROUP BY peopleId,seq HAVING COUNT(1) > 1)     AND rowid NOT IN ( SELECT MIN(rowid) FROM vitae TC GROUP BY peopleId,seq HAVING COUNT(1)>1)

  B,SQLServer中如下删除

DELETE FROM vitae TA  WHERE EXISTS ( SELECT * FROM vitae TB WHERE TB.peopleId=TA.peopleId AND TB.seq =TA.seq GROUP BY peopleId,seq HAVING COUNT(1) > 1)    AND rowid NOT IN ( SELECT MIN(rowid) FROM vitae TC GROUP BY peopleId,seq HAVING COUNT(1)>1)

 

转载于:https://www.cnblogs.com/xinaixia/p/7248382.html

你可能感兴趣的文章
输入任意个数字求和的小程序
查看>>
How Many Tables
查看>>
Go语言实践_实现一(客户端)对一(服务器端)聊天室
查看>>
开放API端口SIGN算法详细设计
查看>>
android pcm
查看>>
Linux下静态链接库的制作与使用
查看>>
Swift4 函数,例子代码
查看>>
012 内置锁和synchronized
查看>>
大型网站系统架构系列:负载均衡详解(二)
查看>>
如何从本地导入.nupkg文件
查看>>
Spring.NET 中配置 ashx 的映射,以及其它各种映射的处理
查看>>
Linux学习——ssh对称加密和非对称加密
查看>>
c# new的三种用法
查看>>
layui数据表格table在选项卡tabs中分页条不显示的解决
查看>>
Android中SQLite应用详解
查看>>
在oracle中创建自动增长字段
查看>>
LINQ操作符三:限制操作符
查看>>
Delphi7 [Fatal Error] ClassPas.pas(8): File not found: 'DesignIntf.dcu'
查看>>
正则表达式
查看>>
支持解析GitHub Flavored Markdown(GFM)的PHP库-Parsedown
查看>>