第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

刪除SQL Server中的重復(fù)記錄?

刪除SQL Server中的重復(fù)記錄?

函數(shù)式編程 2019-09-20 17:08:29
考慮一個(gè)名為EmployeeNametable 的列Employee。目標(biāo)是根據(jù)EmployeeName字段刪除重復(fù)記錄。EmployeeName------------AnandAnandAnilDipakAnilDipakDipakAnil使用一個(gè)查詢,我想刪除重復(fù)的記錄。如何在SQL Server中使用TSQL?
查看完整描述

3 回答

?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以使用窗口功能執(zhí)行此操作。它將通過empId命令dupes,并刪除除第一個(gè)之外的所有。


delete x from (

  select *, rn=row_number() over (partition by EmployeeName order by empId)

  from Employee 

) x

where rn > 1;

將其作為選擇運(yùn)行以查看將刪除的內(nèi)容:


select *

from (

  select *, rn=row_number() over (partition by EmployeeName order by empId)

  from Employee 

) x

where rn > 1;


查看完整回答
反對 回復(fù) 2019-09-20
?
叮當(dāng)貓咪

TA貢獻(xiàn)1776條經(jīng)驗(yàn) 獲得超12個(gè)贊

假設(shè)您的Employee表也有一個(gè)唯一列(ID在下面的示例中),以下內(nèi)容將起作用:


delete from Employee 

where ID not in

(

    select min(ID)

    from Employee 

    group by EmployeeName 

);

這將使表中具有最低ID的版本保留。


編輯

Re McGyver的評論 - 截至SQL 2012


MIN 可以與numeric,char,varchar,uniqueidentifier或datetime列一起使用,但不能與位列一起使用


對于2008 R2及更早版本,


MIN可以與numeric,char,varchar或datetime列一起使用,但不能與位列一起使用(它也不能與GUID一起使用)


對于2008R2,您需要將其GUID轉(zhuǎn)換為支持的類型MIN,例如


delete from GuidEmployees

where CAST(ID AS binary(16)) not in

(

    select min(CAST(ID AS binary(16)))

    from GuidEmployees

    group by EmployeeName 

);


查看完整回答
反對 回復(fù) 2019-09-20
?
繁星淼淼

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超11個(gè)贊

您可以嘗試以下內(nèi)容:


delete T1

from MyTable T1, MyTable T2

where T1.dupField = T2.dupField

and T1.uniqueField > T2.uniqueField  

(這假設(shè)您有一個(gè)基于整數(shù)的唯一字段)


雖然我個(gè)人說你最好試圖糾正重復(fù)條目在發(fā)生之前被添加到數(shù)據(jù)庫而不是作為post-it操作的事實(shí)。


查看完整回答
反對 回復(fù) 2019-09-20
  • 3 回答
  • 0 關(guān)注
  • 589 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號