sql 查询不重复记录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 查询不重复记录相关的知识,希望对你有一定的参考价值。

那是因为zid相同,这些字段T_TuPian.PanelID,
T_TuPian.Title,
T_TuPian.UpLoadTime,T_TuPianMingXi.PID
as
tid,
T_TuPianMingXi.Img
中有不同的,所以不能合并成一行,要么你只查zid和ClassID两个字段,
SELECT
distinct(T_TuPian.PID)
as
zid,T_TuPian.ClassID
FROM
T_TuPian
left
JOIN
T_TuPianMingXi
ON
T_TuPian.PID
=
T_TuPianMingXi.ClassID
where
T_TuPian.PanelID=1
and
T_TuPian.ClassID=1
order
by
UpLoadTime
desc
参考技术A SQL查询不重复记录,操作如下:
1、假如要查询t1表中name字段中所有的姓名,并去除重复。
2、可以使用如下语句:
SELECT DISTINCT name FROM t1;3、其中DISTINCT是去重功能。

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;
参考技术A

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),其他数据库另说

本回答被提问者采纳
参考技术B 只以用游标来做,单纯的SQL语句无法实现。

以上是关于sql 查询不重复记录的主要内容,如果未能解决你的问题,请参考以下文章

如何在数据库中查询出重复记录

sql语句 分次(多次)获取不重复记录,请高手赐教!

SQL查询最新记录[重复]

sql查询消除重复记录

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

SQL查询,如何去除重复的记录?