回 帖 发 新 帖 刷新版面

主题:求删除重复记录的SQL语句

一个表tab,有字段a,b,c,d,e,其中a为主键,现在想删除除了主键之外的所有字段都重复的记录,求SQL语句,谢谢各位。

回复列表 (共3个回复)

沙发

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)

板凳

可能我没有讲清楚,我是想删除重复的冗余记录,但相同的记录要保留一条,你这样子是把有重复的记录全部删除了,不过还是感谢。

3 楼

呵呵,不知道这样符合你的意思吗?
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)  

我来回复

您尚未登录,请登录后再回复。点此登录或注册