SQL SERVER中,删除重复记录的方法
2006-09-15 00:58 心愿 阅读(279) 评论(0) 收藏 举报公司网站刚推出时,为了用户使用方便,发布信息时不用注册、登陆。不进行IP判断。有些无聊之极的家伙就乱发信息,垃圾信息,重复信息N多。严重影响网站形象,所以要想办法删除重复的、不良的信息。
记录的重复分两种:一是完全重复,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如标题,姓名等,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用
select distinct * from tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下
假设重复的字段为标题Title,要求得到这两个字段唯一的结果集
select identity(int,1,1) as ID, * into #Tmp from tableName
select min(ID) as ID into #Tmp2 from #Tmp group by Title
select * from #Tmp where ID in(select ID from #Tmp2)
最后一个select即得到了Title不重复的结果集
浙公网安备 33010602011771号