日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

SQL Server 一列或多列重复数据的查询,删除

發(fā)布時間:2023/12/15 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 SQL Server 一列或多列重复数据的查询,删除 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一般的后臺程序基本上都會遇到和數(shù)據(jù)庫交互的情況,在這種情況里面又會碰到數(shù)據(jù)庫表數(shù)據(jù)的去重需求,鑒于此,我把自己在項目中遇到的情況做了一個整理,方便自己以后查看,也希望能給看到這邊文章的你提供一個思路,閑話就不扯了,直接上干貨……

數(shù)據(jù)庫為 mssql 08 r2

其中表的結(jié)構(gòu)和數(shù)據(jù)如下圖:

查詢表中單列重復(fù)

一.帶有having條件的分組查詢方法

(1)查詢某一列重復(fù)記錄

-------語句------
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 

語句執(zhí)行結(jié)果

(2)查詢某一列不重復(fù)的記錄

-------語句-----

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

語句執(zhí)行結(jié)果

(3)清除某一列重復(fù)的數(shù)據(jù)

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

語句運行結(jié)果

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

二,DISTINCT 的用法
溫馨提醒:
不支持多列統(tǒng)計
Oracle和DB2數(shù)據(jù)庫也適用

利用distinct關(guān)鍵字返回唯一不同的值

(1)查詢某一列不重復(fù)數(shù)據(jù)

------語句-----
SELECT DISTINCT Name FROM dbo.Member 

語句運行結(jié)果


(2)DISTINCT 查詢多列不重復(fù)(如果查詢的列有任何一個不重復(fù),則這條記錄視為不重復(fù))

-------語句----------
SELECT DISTINCT Name,Uid FROM dbo.Member  

語句運行結(jié)果



DISTINCT 用于統(tǒng)計

--------語句-------- 
SELECT COUNT(DISTINCT(Name)) FROM dbo.Member  

二、多列重復(fù)

數(shù)據(jù)表結(jié)構(gòu)



查找Original_ID和Match_ID這兩列值重復(fù)的行

----------SQL語句-----------  
SELECT m.* FROM dbo.Match m,(  
SELECT Original_ID,Match_ID  
FROM dbo.Match   
GROUP BY Original_ID,Match_ID  
HAVING COUNT(1)>1  
) AS m1  
WHERE m.Original_ID=m1.Original_ID AND m.Match_ID=m1.Match_ID

語句運行結(jié)果

總結(jié)

以上是生活随笔為你收集整理的SQL Server 一列或多列重复数据的查询,删除的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。