SQL 查找重复记录
表stuinfo,有三个字段recno(自增),stuid,stuname
建该表的Sql语句如下:
CREATE TABLE [StuInfo] (
[recno] [int] IDENTITY (1, 1) NOT NULL ,
[stuid] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[stuname] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO
1.--查某一列(或多列)的重复值(只能查出重复记录的值,不能整个记录的信息)
--如:查找stuid,stuname重复的记录
select stuid,stuname from stuinfo
group by stuid,stuname
having(count(*))>1
2.--查某一列有重复值的记录(这种方法查出的是所有重复的记录,也就是说如果有两条记录重复的,就查出两条)
--如:查找stuid重复的记录
select * from stuinfo
where stuid in (
select stuid from stuinfo
group by stuid
having(count(*))>1
)
3.--查某一列有重复值的记录(只显示多余的记录,也就是说如果有三条记录重复的,就显示两条)
--这种方成绩的前提是:需有一个不重复的列,本例中的是recno
--如:查找stuid重复的记录
select * from stuinfo s1
where recno not in (
select max(recno) from stuinfo s2
where s1.stuid=s2.stuid
)
4.--select yhhao(列名)from student(表名) group by yhhao(列名) having count(*)>1;
--从这里面取所有字段的值
select * from 表名 where yhhao(列名) in(select 列名from 表名 group by 列名 having count(*)>1);
--删除
delete from 表名 where yhhao(列名) in(select 列名from 表名 group by 列名 having count(*)>1);
--删除其中的某一行
create index ix on 表名(字段名);
delete from 表名 a where exists(select 1 from 表名 where 列名=a.列名 and rowid>a.rowid);
分享到:
相关推荐
SQL 一些常用语句大全 sql查询重复记录方法大全
SQL语句查询所有的重复记录,删除所有的重复记录,查找指定的重复记录
查询SQL重复记录的几种方法总结,删除SQL重复记录查
SQL重复记录查询与删除 过滤重复字记录,单字段重复,重复的只显示1条记录,并且显示出所有字段 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 只能显示哪些记录是重复的。 2、删除表中...
sql_查询重复记录方法大全 查找所有重复标题的记录: SELECT * FROM t_info a WHERE ((SELECT COUNT(*) FROM t_info WHERE Title = a.Title) > 1) ORDER BY Title DESC
sql 查出一张表中重复的所有记录数据 1.表中有id和name 两个字段,查询出name重复的所有数据 select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、...
SQL重复记录查询的几种方法,需要的朋友可以参考一下
在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢; 1、查找表中多余的重复记录; 2、查找表中多余的重复记录; 3、删除表中多余的重复记录(多个字段)
查找重复记录 1. 查找全部重复记录 Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1) 2. 过滤重复记录(只显示一条) Select * From HZT Where ID In (Select Max...
如下sql,找出重复的记录,和重复记录中ID值最小的记录(表中ID为自增长) select MIN(ID) as id, StructSN ,Date,UserID,StarCount,COUNT(StructSN) as c from T_Dor_StructStar where Date >= '20160919' group ...
是一个简单的sql语句,你可以仿照这个语句查出表里的重复数据。
查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2....
代码如下:select a,b,c,count(*) from (select c.a,c.b,c.c from test c) having count(*) >= 2 group by a,b,c 或者 代码如下:select zdbh,... 您可能感兴趣的文章:用SQL语句查询数据库中某一字段下相同值的记录方法
前言 本文主要给大家介绍了关于MySQL中查询、删除重复记录的方法,分享出来供大家参考学习,下面来看看详细的介绍: 查找所有重复标题的记录: ...一、查找重复记录 1、查找全部重复记录 SELECT * FROM t_inf
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1) 2、删除表中多余的...
SQL重复记录查询 1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1...
查找并铲除数据库中的重复记录,,适用sql.acc等数据库
多表update sql语句总结mysql锁表和解锁语句分享MySQL中基本的多表连接查询教程MySQL表字段设置默认值(图文教程及注意细节)MySQL中使用表别名与字段别名的基本教程mysql查询表里的重复数据方法mysql 导入导出数据库...