SQL如何删除所有字段都相同的重复数据?

database

SQL Server数据库:有时候在处理数据时会遇到不加主键的表,导致数据表内出现了一模一样的数据,刚开始第一时间想到的方式是,把两条数据全部删除,然后再插入一条,但是这种可能数据量比较少的话,还可以,没有那么麻烦,一旦出现大量的数据需要处理,就有点浪费时间了,后来又想到了下面这种方式,个人觉得还不错,今天就简单介绍下这个如何在数据表内删除所有字段都相同的重复数据。

首先创建一个临时表并插入一些数据,用于模拟该场景。

--创建一个#temp的临时表

createtable #temp

(

ID intnotnull,

Name varchar(20) null

)

--在临时表内插入测试数据

insertinto #temp(ID,Name) values("1","测试");

insertinto #temp(ID,Name) values("1","测试");

insertinto #temp(ID,Name) values("2","测试2");

insertinto #temp(ID,Name) values("2","测试");

insertinto #temp(ID,Name) values("3","测试");

测试表结果查询

select*from #temp

ID 

Name

1

测试

1

测试

2

测试2

2

测试

3

测试

去重并删除重复数据SQL语句:

--查询去重并删除重复数据

with TEST as

(

select ID,Name,row_number() over(partition by ID,Name orderby ID) RowNum

from #temp

)

deletefrom TEST where RowNum >1

--查询去重后的数据

select*from #temp

ID 

Name

1

测试

2

测试2

2

测试

3

测试

测试到此结束,记得最后再把测试用的临时表删除!!!

DROPTABLE #temp

 

以上是 SQL如何删除所有字段都相同的重复数据? 的全部内容, 来源链接: utcz.com/z/536079.html

回到顶部