欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

SQL Server删除重复行的6个方法

程序员文章站 2024-02-09 19:50:10
...

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 (

,香港服务器租用