加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sqlserver中删除重复行的方法

发布时间:2020-12-12 14:56:11 所属栏目:MsSql教程 来源:网络整理
导读:前段时间,公司同事不小心在数据库表中重加了数据,不多,7000条左右。因为信息比较重要,不能删错了。但也不能有重复数据。所以找我求救。 解决问题后,总结如下: SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的SQL Serve

前段时间,公司同事不小心在数据库表中重加了数据,不多,7000条左右。因为信息比较重要,不能删错了。但也不能有重复数据。所以找我求救。

解决问题后,总结如下:

SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的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,col3...)?????
delect?? table?????
inset?? into?? table(...)?????
select?? .....?? from?? #temp????
4. col1+','+col2+','...col5 联合主键?

select?? *?? from???? table?? where?? col1+','...col5?? in?? (?????
select?? max(col1+','...col5)?? from?? table???????
where?? having?? count(*)>1?????
group?? by?? col1,col3,col4???????
)????
group?? by?? 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同。?

5.

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

select?? distinct?? *?? into?? #temp?? from?? tablename??????? delete?? tablename??????? go????? insert?? tablename?? select?? *?? from?? #temp?? Sqlclub??? go????? drop?? table?? #temp?? 以上就是SQL Server删除重复行的方法介绍。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读