清除冗余记录的SQL语句

王朝mssql·作者佚名  2006-01-09
宽屏版  字体: |||超大  

问题:设表T中有五个字段A,B,C,D,ID,其中ID字段是为自动增量整型字段(唯一值)。业务数据生成时有重复插入现象,现需对A、B、C、D四字段完全一样的脏数据进行清理,要求设计一SQL语句,对四个字段完全一样的记录,仅保留ID最小的一条,其余作删除处理。

DELETE FROM T WHERE [ID] IN

(

select [ID] from T where A in

(select A from T Group By A,B,C,D Having count(*)>1)

and [ID]<>

(select min(ID) as minID from T Group By A,B,C,D Having count(*)>1)

)

更正:

delete from T

where T.ID not in (select min(ID) from T group by T.A,T.B,T.C,T.D)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有