首页数据库SQL Server中怎样删除重复行,有什么方法?

SQL Server中怎样删除重复行,有什么方法?

时间2024-03-24 03:30:03发布访客分类数据库浏览1466
导读:这篇文章我们来了解SQL Server中怎样删除重复行。数据库中的重复行是很常见的,那么我们要删除这些重复行都有什么方法呢?下面给大家分享一些方法,文中有详细的介绍,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!1.如果有ID字段...

这篇文章我们来了解SQL Server中怎样删除重复行。数据库中的重复行是很常见的,那么我们要删除这些重复行都有什么方法呢?下面给大家分享一些方法,文中有详细的介绍,有需要的朋友可以参考,接下来就跟随小编来一起学习一下吧!

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

代码如下:

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

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

2. 如果是判断所有字段也可以这样

代码如下:

select * into #aa from table group by id1,id2,....
delete table
insert into table
select * from #aa

3. 没有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

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

代码如下:

select * from table where col1+','+col2+','...col5 in (
select max(col1+','+col2+','...col5) from table
where having count(*)> 1
group by col1,col2,col3,col4
)


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

5.

代码如下:

select identity(int,1,1) as id,* into #temp from tabel
select * from #temp where id in (
select max(id) from #emp where having count(*)> 1 group by col1,col2,col3...)


6.

代码如下:

select distinct * into #temp from tablename
delete tablename
go
insert tablename select * from #temp Sqlclub
go
drop table #temp

以上六种都是SQL Server删除重复行的方法,上述SQL语句具有一定的参考价值,有需要的朋友可以了解看看,希望对大家学习SQL Server的操作有帮助,想要了解更多可以继续浏览网络其他相关的文章。

文本转载自网络

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: SQL Server中怎样删除重复行,有什么方法?
本文地址: https://pptw.com/jishu/651790.html
C语言的main函数位置放哪,一个c程序能有多少main函数 SQL中exists的用法是什么?一文带你看懂

游客 回复需填写必要信息