风之语者

博客园 首页 新随笔 联系 订阅 管理

原始数据:

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

posted on 2012-03-18 11:45  风之语者  阅读(400)  评论(0编辑  收藏  举报