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

主頁(yè) > 知識(shí)庫(kù) > 刪除Table表中的重復(fù)行的方法

刪除Table表中的重復(fù)行的方法

熱門(mén)標(biāo)簽:電銷(xiāo)外呼有錄音系統(tǒng)有哪些 臨沂智能電銷(xiāo)機(jī)器人加盟哪家好 貴州房產(chǎn)智能外呼系統(tǒng)供應(yīng)商 申請(qǐng)400電話在哪辦理流程 一個(gè)導(dǎo)航軟件能用幾個(gè)地圖標(biāo)注點(diǎn) 鎮(zhèn)江網(wǎng)路外呼系統(tǒng)供應(yīng)商 小e電話機(jī)器人 外呼運(yùn)營(yíng)商線路收費(fèi) 百度地圖標(biāo)注改顏色
利用SQL Server 2005的新功能NOW_NUMBER和CTE可以很好的實(shí)現(xiàn).
舉例說(shuō)明如下:
建立測(cè)試數(shù)據(jù):
復(fù)制代碼 代碼如下:

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

可以查看到重復(fù)的數(shù)據(jù)有:
復(fù)制代碼 代碼如下:

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


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

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


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

--用到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.創(chuàng)建一個(gè)標(biāo)識(shí)鍵唯一的表記一列.
復(fù)制代碼 代碼如下:

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

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

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,這種方法借助一個(gè)新的table,把不重復(fù)的結(jié)果集轉(zhuǎn)移到新table中.
復(fù)制代碼 代碼如下:

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

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

標(biāo)簽:嘉興 日照 三明 延邊 保定 澳門(mén) 晉城 合肥

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《刪除Table表中的重復(fù)行的方法》,本文關(guān)鍵詞  刪除,Table,表,中的,重復(fù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《刪除Table表中的重復(fù)行的方法》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于刪除Table表中的重復(fù)行的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 沂水县| 土默特左旗| 浏阳市| 绍兴县| 西宁市| 无棣县| 建始县| 崇阳县| 永安市| 阿瓦提县| 错那县| 荔浦县| 灵丘县| 鹤庆县| 胶州市| 城固县| 顺义区| 麻城市| 堆龙德庆县| 东丽区| 甘孜| 丹巴县| 巴彦淖尔市| 游戏| 通州区| 元朗区| 怀仁县| 镇康县| 河池市| 西平县| 施甸县| 长乐市| 寿阳县| 韩城市| 司法| 尤溪县| 文化| 宁阳县| 宝鸡市| 德清县| 金昌市|