TSQL删除重复数据,保留一条

原始数据:

Table1

ID       Name     

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

1        a    

2        b

3        a

4        c

5        b

需要数据:

Table1

ID       Name     

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

1        a    

2        b

4        c

开始:

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查阅相关资料

原文地址:https://www.cnblogs.com/WindBlog/p/2404496.html