SqlServer删除表中重复记录

发生这种重新的因由是表设计不周发生的,扩大独一索引列就可以缓慢解决。

  最后叁个select即取得了Name,Address不另行的结果集(但多了三个autoID字段,实际写时可以写在select子句中节约此列)

tableName中再一次的笔录(只保留重复记录的率先条记下)

  1、对于第一种重复,比较便于解决,使用1 select distinct * from
tableName   就足以博得无重复记录的结果集。  若是该表供给删除重复的笔录(重复记录保留1条),能够按以下措施删除

  2、那类重复难题普通供给保存重复记录中的第一条记下,操作方法如下  借使有重复的字段为Name,Address,必要获取那多少个字段独一的结果集

注意:tableName中并未有autoID字段,能够select去除autoID字段完毕

 

  重复记录:有三个意思上的重复记录

  一是一心重复的记录,也即怀有字段均再次的笔录;

  二是局地根本字段重复的笔录,举例Name字段重复,而别的字段不自然再度或都再一次能够忽视。

通过上面操作并将tableName中无重复的结果集保存到了不常表#Tmp2,能够通过删除表tableName,然后再将有时表#Tmp2记录插入tableName达成删除

 

1 --查询无重复记录的结果集,并将结果集保存到临时表#Tmp2 select distinct * into #Tmp from tableName3 --删除表tableName4 drop table tableName5 --将临时表#Tmp数据全部插入表tableName6 select * into tableName from #Tmp7 --删除临时表8 drop table #Tmp 

 

1 --将tableName中的全部记录插入临时表#Tmp,并增加行号字段2 select identity(int,1,1) as autoID, * into #Tmp from tableName3 --将临时表#Tmp中的无重复记录插入临时表#Tmp2(min(autoID)....group by Name,autoID-实现保留Name重复的记录中的第一条)4 select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID

发表评论

电子邮件地址不会被公开。 必填项已用*标注