当前位置:Gxlcms > mysql > SQLServer删除重复行的6个方法

SQLServer删除重复行的6个方法

时间:2021-07-01 10:21:17 帮助过:268人阅读

SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的SQL Server删除重复行的方法,供您参考。 1.如果有ID字段,就是具有唯一性的字段 delecttable tableName whereidnotin(selectmax(id)fromtablegroupbycol1,col2,col3... ) gro

SQL Server删除重复行是我们最常见的操作之一,美国空间,下面就为您介绍六种适合不同情况的SQL Server删除重复行的方法,供您参考。

1.如果有ID字段,就是具有唯一性的字段

delect table tableName where id not in ( select max(id) from table group by col1,col2,col3... )

group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同。

2. 如果是判断所有字段也可以这样 ,【对于表中的指定的字段的进行检查是否相同】

select * into #temp from tablename group by id1,id2,....

delete tablename

insert into table select * from #temp

drop table #temp

3. 首先去重复,再获取N*1条数据插入到临时表中,【对于表中的所有字段的进行检查是否相同】,再将原表的数据删除,香港服务器,然后将临时表的数据插入到原表,最后删除临时表。

select distinct * into #temp from tablename

delete tablename

go

insert tablename select * from #temp

go

drop table #temp

4. 没有ID的情况

select identity(int,1,1) as id,* into #temp from tabel

delect # where id not in (

select max(id) from # group by col1,col2,col3...)

delect table

inset into table(...)

select ..... from #temp

5. col1+','+col2+','...col5 联合主键

select * from table where col1+','+col2+','...col5 in (

select max(col1+','+col2+','...col5) from table

group by col1,col2,col3,col4

)

group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同。

6.

select identity(int,1,1) as id,* into #temp from tabel

select * from #temp where id in (

,香港服务器租用

人气教程排行