婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 刪除Table表中的重復行的方法

刪除Table表中的重復行的方法

熱門標簽:電銷外呼有錄音系統有哪些 臨沂智能電銷機器人加盟哪家好 貴州房產智能外呼系統供應商 申請400電話在哪辦理流程 一個導航軟件能用幾個地圖標注點 鎮江網路外呼系統供應商 小e電話機器人 外呼運營商線路收費 百度地圖標注改顏色
利用SQL Server 2005的新功能NOW_NUMBER和CTE可以很好的實現.
舉例說明如下:
建立測試數據:
復制代碼 代碼如下:

create table Dup1
(
Col1 int null,
Col2 varchar(20) null
)
insert into Dup1 values
(1, 'aaa'),
(2, 'aaa'),
(2, 'aaa'),
(2, 'aaa'),
(3, 'bbb'),
(3, 'bbb'),
(4, 'ccc'),
(4, 'ddd'),
(5, 'eee')
select * from Dup1

可以查看到重復的數據有:
復制代碼 代碼如下:

SELECT Col1, Col2, COUNT(*) AS DupCountFROM Dup1GROUP BY Col1, Col2HAVING COUNT(*) > 1


接下來介紹如何delete掉重復的數據:
1.NOW_NUMBER:SQL Server 2005添加了很好用的RANKING函數(NOW_NUMBER,RANK,DENSE_RANK,NTILE),利用NOW_NUMBER()OVER(PARTITION GY)最為直接,也最為方便,不能修改表或者產生多余的列.
首先會分配一個列號碼,以Col1,Col2組合來分區排序.
復制代碼 代碼如下:

SELECT Col1, Col2,ROW_NUMBER() OVER (PARTITION BY Col1, Col2 ORDER BY Col1) AS rnFROM Dup1


得到的序號如下:
 
很明顯的是重復列都分組分割排序,只需要delete掉排序序號>1的即可.
復制代碼 代碼如下:

--用到CTE
WITH DupsD
AS (
SELECT Col1, Col2,
ROW_NUMBER() OVER (PARTITION BY Col1, Col2 ORDER BY Col1) AS rn
FROM Dup1
)
DELETE DupsD
WHERE rn > 1;
--或者
DELETE A FROM (
SELECT Col1, Col2,
ROW_NUMBER() OVER (PARTITION BY Col1, Col2 ORDER BY Col1) AS rn
FROM Dup1) A WHERE A.rn>1

2.創建一個標識鍵唯一的表記一列.
復制代碼 代碼如下:

ALTER TABLE dbo.Dup1
ADD
PK INT IDENTITY
NOT NULL
CONSTRAINT PK_Dup1 PRIMARY KEY;
SELECT *
FROM Dup1;

刪除找出與Col1,Col2相同并且比Dup1.PK大的記錄,也就是保留重復值中PK最小的記錄.
復制代碼 代碼如下:

DELETE Dup1
WHERE EXISTS ( SELECT *
FROM Dup1 AS D1
WHERE D1.Col1 = Dup1.Col1
AND D1.Col2 = Dup1.Col2
AND D1.PK > Dup1.PK );

3.select distant into,這種方法借助一個新的table,把不重復的結果集轉移到新table中.
復制代碼 代碼如下:

SELECT distinct Col1, Col2 INTO NoDupsFROM Dup1;select * from NoDups

建議采用第一種和第三種方法,第一種多見于T-SQL的編程中,第三種在ETL中常常使用.
您可能感興趣的文章:
  • 刪除DataTable重復列,只刪除其中的一列重復行的解決方法
  • 分享SQL Server刪除重復行的6個方法
  • sqlserver利用存儲過程去除重復行的sql語句
  • SQLServe 重復行刪除方法
  • 批處理 刪除重復行的代碼
  • 用vbscript實現從文本文件中刪除所有重復行的代碼
  • sql里將重復行數據合并為一行數據使用逗號進行分隔

標簽:嘉興 日照 三明 延邊 保定 澳門 晉城 合肥

巨人網絡通訊聲明:本文標題《刪除Table表中的重復行的方法》,本文關鍵詞  刪除,Table,表,中的,重復,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《刪除Table表中的重復行的方法》相關的同類信息!
  • 本頁收集關于刪除Table表中的重復行的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 安岳县| 雷山县| 中西区| 奎屯市| 蓝山县| 英超| 清新县| 石林| 大埔县| 木里| 遵化市| 宜兰市| 灵川县| 星座| 衢州市| 东海县| 克东县| 乳源| 兴化市| 维西| 三原县| 麻阳| 扶沟县| 晴隆县| 锡林浩特市| 华阴市| 塔城市| 濮阳县| 专栏| 泰顺县| 宁南县| 翁源县| 仙居县| 马关县| 峨边| 黑河市| 伊春市| 卢湾区| 乐昌市| 麻江县| 德阳市|