SQL重复记录查询的几种方法
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 代码如下:select * from peoplewhere 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) )>1) 3、查找表中多余的重复记录(多个字段) 代码如下:select * from vitae awhere (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录 代码如下:delete from vitae awhere (a.peopleId,seq having count(*) > 1) 5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录 代码如下:select * from vitae awhere (a.peopleId,seq having count(*)>1) (二) 比方说 在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 (三) 方法一 代码如下:declare @max integer,@id integerdeclare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1 方法二有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重 复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。 1、对于第一种重复,比较容易解决,使用 如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除 2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下 假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集 在select子句中省去此列) (四)查询重复 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 同步文件备份工具 Super Flexible File Synchronizer Pro v
- sqlserver写多条件并列查询语句
- SqlServer2005 数据库同步配置详解
- sql-server – SQL Server 2008中登录和凭证有什么区别?
- sql-server – 如何选择项目匹配只有IN List在sql server中
- 更改 SQL Server 实例的服务主密钥
- 如何从SQL Server Management Studio中的表生成CRUD存储过程
- sql – 将记录插入到表中,如果条目不存在于另一个表中 – 有
- sqlserver 迁移到mysql
- index seek与index scan