您的位置:首页 > 数据库

SqlServer 2000 去除完全重复的记录 无主键约束

2016-12-12 17:12 232 查看
如果你的情况也是,没有主键约束,导致出现了很多完全一致的记录,这时候如何去重复就比较麻烦了,因为是sqlserver 2000 还没有支持rowid这种东西,坑。

不过,我这里有个法子,挺好用的。

首先给你需要去重的表添加一列,设置为主键 + 自增标识   (我这里取名 tempID)

然后通过sql去掉重复记录:

delete from  表名 where 字段1(判定是否重复的字段) in (select
 字段1 from 表名  group by 字段1 having count(*) > 1) and tempID(字段2,这里是我们新加的字段)

not in (select min(tempID) from mem_localmemberbaseinfo  group by 字段1 having count(*)>1)            

原理: 不删除根据字段1分组排序出来的tempID最小的那一行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: