SQL查询满足两个条件的重复记录只显示2条记录的方法

图1
图2
SQL查询满足两个条件的重复记录只显示2条记录的方法,如图1,条件1:QB列前8位数一样,条件2:name内容一样,只显示符合条件的两条.要达到的目的如图2

首先,需要符合两个条件,即where a=b and c=d;
其次,需要合并重复的资料,即group by a ;
最后,只显示2条记录,即top 2;
整条sql就是:
select top 2 * from table where a=b and c=d group by a;
上面是a字段有重复的情况,若多个字段有重复,则:
select top 2 * from table where a=b and c=d group by a,b,c;
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-21

sqlserver写法

select t.xh,t.qb,t.name,t.type,t.dw
from
(select 表名.*,row_number() over (partition by substring(qb,1,8),name order by xh desc) rn from 表名) t
where rn<=2

oracle的话substring(qb,1,8)改成substr(qb,1,8),其他数据库另说

本回答被提问者采纳
第2个回答  2013-12-12
只以用游标来做,单纯的SQL语句无法实现。

SQL查询满足两个条件的重复记录只显示2条记录的方法
首先,需要符合两个条件,即where a=b and c=d;其次,需要合并重复的资料,即group by a ;最后,只显示2条记录,即top 2;整条sql就是:select top 2 * from table where a=b and c=d group by a;上面是a字段有重复的情况,若多个字段有重复,则:select top 2 * from table where a...

sql查询表中存在2条一样数据就不显示
sql查询表中存在2条一样数据就不显示参考以下方法解决 1、select distinct 查询字段名 。2、查询from 表名 。3、设置where 查询条件。4、输入distinct是去除重复内容的。其他解决办法:1、先把不重复数据的id查询出来 通过count()计算 只有数目为1的才是不重复的数据。2、然后通过in选择出不重复记录...

sql查询按两个字段查询重复记录
select from shiyan003 a where exists (select 1 from (select xm, sfzhm from shiyan003 group by xm, sfzhm having count(*) > 1) s where s.xm = a.xm and s.sfzhm = a.sfzhm)

sql查询按两个字段查询重复记录
5、运用Right join 右连接 right join是以a表的记录为基础的,shiyan003可以看成左表,a可以看成右表,right join是以右表为准的。换句话说,右表a的记录将会全部表示出来,而左表(shiyan003)只会显示符合搜索条件的记录(例子中为: a.xm = shiyan003.xm and a.)。A表记录不足的地方均为NULL。图...

原句是这样的 我只要两条数据 sql 查询怎么查 都有四条数据 但我的两...
如果你还要这样查的话,加一个关键字DISTINCT,把重复的数据只显示一条,那样就只会查出两条了;如果你不想用这个关键字,就要修改链接条件,你自己选择吧

sql查询两个字段相同的记录
两种方法,一种是查询重复的数据,只查询重复记录,不管其余信息,如ID什么的:select uid, time from ztest GROUP BY uid, time having count(*)>1;查出结果是 uid time 1 1 还有一种是查询你指定信息,可以查询出ID信息:select distinct a.id, a.uid, a.time from ztest a join zt...

如何查询sql表中2个字段分别相同的记录
如有以下2张表:查询2张表id和name字段内容完全相同的内容,可用如下语句:1 select a.* from test a,test1 b where a.id=b.id and a.name=b.name;结果:说明,两表连接where条件要写上关联条件,因为提问是两个字段完全相等,所以就写作:a.id=b.id and a.name=b.name ...

sql查询去掉重复记录
1、打开要去掉重复数据的数据库,这里新建一张含有重复数据的user表做示例,如下图所示:2、输入“select * from user where name in (select name from user group by name having count(name) > 1) ”sql语句,点击运行可以看到查询出了数据库中user表的重复数据。3、通过“delete from user ...

怎样用Sql语句判断一张表中的两条数据相同
SELECT @条件1=字段1 ,@条件2=字段2 ,@条件3=字段3 FROM 第一条数据所在表 WHERE 第一条数据主键 DECLARE @ExistINTSELECT @Exist=COUNT(*) FROM 第二条数据所在表 WHERE 字段1=@条件1 AND 字段2=@条件2 AND 字段3=@条件3 IF@Exist>0BEGIN--重复ENDELSEBEGIN--不重复END...

sql查询语句,怎样查询重复数据
查询重复数据的SQL语句可以通过使用GROUP BY和HAVING子句来实现。使用GROUP BY和HAVING查询重复数据 1. GROUP BY子句的作用:GROUP BY子句用于将来自多个记录的数据按照一个或多个列进行分组。当我们想要基于某些列的值来查看数据的重复情况时,GROUP BY是非常有用的。2. 结合聚合函数使用:为了识别重复...

相似回答