新聞中心
如果表中有多組完全不同的重復(fù)的 PK 值,則逐個(gè)刪除它們會(huì)很費(fèi)時(shí)間。在這種情況下,可使用下面的方法:

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),介休企業(yè)網(wǎng)站建設(shè),介休品牌網(wǎng)站建設(shè),網(wǎng)站定制,介休網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,介休網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
1.首先,運(yùn)行上面的 GROUP BY 查詢來(lái)確定有多少組重復(fù)的 PK 值及每組的重復(fù)數(shù)。
2.選擇重復(fù)的鍵值放入臨時(shí)表中。例如:
SELECT col1, col2, col3=count(*) |
3.選擇重復(fù)的行放入臨時(shí)表中,以清除進(jìn)程中的重復(fù)值。例如:
SELECT DISTINCT t1.* |
4.此時(shí),holddups 表應(yīng)有唯一的 PK;但是,如果 t1 有重復(fù)的 PK 而行唯一(如上面的 SSN 示例),情況就不是這樣了。請(qǐng)驗(yàn)證 holddups 中的各個(gè)鍵是否唯一,是否沒(méi)有鍵重復(fù)而行唯一的情況。如果是這樣,您必須停在該處,確定對(duì)于給定重復(fù)的鍵值,您希望保留哪些行。例如,以下查詢:
SELECT col1, col2, count(*) |
應(yīng)為各行返回計(jì)數(shù) 1。如果結(jié)果是 1,請(qǐng)繼續(xù)執(zhí)行下面的步驟 5。如果不是 1,則存在鍵重復(fù)而行唯一的情況,且需要您決定要保存哪些行。通常,這將需要舍棄行或?yàn)榇诵袆?chuàng)建新的唯一的鍵值。為 holddups 表中每個(gè)此種重復(fù) PK 執(zhí)行這兩個(gè)步驟之一。
5.從原始表中刪除重復(fù)的行。例如:
DELETE t1 |
6.將唯一行放回原始表中。例如:
INSERT t1 SELECT * FROM holddups |
當(dāng)前名稱:詳解如何刪除SQLServer表中的重復(fù)行
網(wǎng)站路徑:http://www.dlmjj.cn/article/codgipg.html


咨詢
建站咨詢
