首页 新闻 赞助 找找看

某字段中有重复记录,如何添加一个字段,给第一条记录标记为1,后面的重复记录都为0?

0
悬赏园豆:10 [已解决问题] 解决于 2015-10-15 18:12

某字段中有重复记录,如何添加一个新字段,其功能是给第一条记录标记为1,后面的重复记录都为0?假设重复记录是连续的,不考虑会跳跃存在。

例如:

班级                         班级   标记

一班                         一班     1

一班                         一班     0

一班                         一班     0

二班                         二班     1

二班                         二班     0

errors2015的主页 errors2015 | 初学一级 | 园豆:151
提问于:2015-09-15 23:04
< >
分享
最佳答案
1

SqlServer中有Row_Number() Over(),可以使用这个。

SELECT *, Row_Number() OVER (partition by 班级 ORDER BY 班级) rank FROM Table

最后得出的rank不为1表示是重复的值,可以insert进表然后update成0就行。

收获园豆:10
webaspx | 小虾三级 |园豆:1973 | 2015-09-16 11:51

 谢谢,问题终于解决了!

errors2015 | 园豆:151 (初学一级) | 2015-10-15 18:11
其他回答(1)
0

update table set 标记=1 where id in (SELECT id FROM table a WHERE NOT EXISTS (SELECT 1 FROM table   WHERE a.id>id AND a.班级=班级))

或者 update table set 标记=1 where id (select min(id) from table group by 班级 )

lb1208 | 园豆:371 (菜鸟二级) | 2015-09-16 10:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册