天天看點

T-SQL删除重複資料,保留一條

原始資料:

Table1

ID       Name     

-----------------------

1        a    

2        b

3        a

4        c

5        b

需要資料:

開始:

DELETE FROM TABLE1 WHERE ID IN (

SELECT ID FROM (

SELECT ID, RANK OVER(PARTRITION BY NAME ORDER BY ID) AS RankNumber FROM TABLE1

WHERE RankNumber<>1) -- 根據name分組,在組内設定等級編号,保留第一條,其他删掉

)

該SQL語句未經實際運作.但是原理為使用RANK OVER和PARTRITION關鍵字是不會錯的,如果運作有問題請去msdn查閱相關資料