博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL - SQL Server 一列或多列重复数据的查询,删除
阅读量:4050 次
发布时间:2019-05-25

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

 

数据库测试表dbo.Member

一、单列重复

一,带有having条件的分组查询方法

(1)查询某一列重复记录

语句:

SELECT  Name FROM  dbo.Member t WHERE Name IN (SELECT Name FROM dbo.Member GROUP BY Name HAVING COUNT(Name)>1 ) ORDER BY t.Name

查询结果:

(2)查询某一列不重复的记录

语句:

SELECT * FROM dbo.Member WHERE ID  IN (SELECT MIN(ID) FROM dbo.Member GROUP BY Name)

查询结果:

(3)清除某一列重复的数据

语句:

DELETE FROM dbo.Member WHERE ID NOT IN (SELECT MIN(ID) FROM dbo.Member GROUP BY Name)

执行结果:

解释:上面的例子只保存了各自Name的最小值。

二,DISTINCT 的用法

温馨提醒:不支持多列统计Oracle和DB2数据库也适用

利用distinct关键字返回唯一不同的值

(1)查询某一列不重复数据

语句:

SELECT DISTINCT Name FROM dbo.Member

结果集:

(2)DISTINCT 查询多列不重复(如果查询的列有任何一个不重复,则这条记录视为不重复)

语句:

SELECT DISTINCT Name,Uid FROM dbo.Member
查询结果

DISTINCT 用于统计语句
SELECT COUNT(DISTINCT(Name)) FROM dbo.Member

 二、多列重复

 

数据表结构

查找Original_ID和Match_ID这两列值重复的行

SQL语句

SELECT m.* FROM dbo.Match m,(SELECT Original_ID,Match_IDFROM dbo.Match GROUP BY Original_ID,Match_IDHAVING COUNT(1)>1) AS m1WHERE m.Original_ID=m1.Original_ID AND m.Match_ID=m1.Match_ID

 

查询结果

 

 

转载地址:http://nmnci.baihongyu.com/

你可能感兴趣的文章
CodeForces #196(Div. 2) 337D Book of Evil (树形dp)
查看>>
uva 12260 - Free Goodies (dp,贪心 | 好题)
查看>>
uva-1427 Parade (单调队列优化dp)
查看>>
poj 1155 TELE (树形背包dp)
查看>>
【设计模式】学习笔记13:组合模式(Composite)
查看>>
hdu 1011 Starship Troopers (树形背包dp)
查看>>
hdu 1561 The more, The Better (树形背包dp)
查看>>
【设计模式】学习笔记14:状态模式(State)
查看>>
poj 1947 Rebuilding Roads (树形背包dp)
查看>>
【设计模式】学习笔记15:代理模式(Proxy Pattern)
查看>>
hdu 4003 Find Metal Mineral (树形背包dp)
查看>>
uva 1407 Caves (树形背包dp)
查看>>
poj 2486 Apple Tree (树形背包dp)
查看>>
poj 3345 Bribing FIPA (树形背包dp | 输入坑)
查看>>
hdu 4597 Play Game(区间dp)
查看>>
鲍尔默在微软最大的遗憾?
查看>>
外煤关注:百度收购大部分糯米股份
查看>>
【设计模式】学习笔记16:代理模式之虚拟代理(实现CD封面加载器)
查看>>
zoj 3627 Treasure Hunt II (贪心)
查看>>
zoj-3626 Treasure Hunt I (树形dp)
查看>>