主题:求删除重复记录的SQL语句
hanzhijun402
[专家分:3690] 发布于 2005-11-02 10:14:00
一个表tab,有字段a,b,c,d,e,其中a为主键,现在想删除除了主键之外的所有字段都重复的记录,求SQL语句,谢谢各位。
回复列表 (共3个回复)
沙发
cwb1128 [专家分:3120] 发布于 2005-11-02 12:15:00
delete from tab where
exists(select * from tab b where b.b=tab.b and b.c=tab.c and b.d=tab.d and b.e=tab.e having count(*)>1)
板凳
hanzhijun402 [专家分:3690] 发布于 2005-11-02 13:03:00
可能我没有讲清楚,我是想删除重复的冗余记录,但相同的记录要保留一条,你这样子是把有重复的记录全部删除了,不过还是感谢。
3 楼
cwb1128 [专家分:3120] 发布于 2005-11-02 13:29:00
呵呵,不知道这样符合你的意思吗?
delete from tab where
a not in (select top 1 b.a from tab b where b.b=tab.b and b.c=tab.c and b.d=tab.d and b.e=tab.e)
我来回复