SQL Server删除表中的重复数据


Posted in SQL Server onMay 25, 2022

添加示例数据

create table Student(
        ID varchar(10) not null,
        Name varchar(10) not null,
);

insert into Student values('1', 'zhangs');
insert into Student values('2', 'zhangs');
insert into Student values('3', 'lisi');
insert into Student values('4', 'lisi');
insert into Student values('5', 'wangwu');

SQL Server删除表中的重复数据

删除Name重复多余的行,每个Name仅保留1行数据

1、查询表中Name 重复的数据

select Name from Student group by  Name having count(Name) > 1

SQL Server删除表中的重复数据

2、有唯一列,通过唯一列最大或最小方式删除重复记录

检查表中是否有主键或者唯一值的列,当前可以数据看到ID是唯一的,可以通过Name分组排除掉ID最大或最小的行

delete from Student
  where Name in( select Name from Student group by  Name having count(Name) > 1) and 
 ID not in(select  max(ID) from Student group by  Name having count(Name) > 1 )

执行删除脚本后查询

SQL Server删除表中的重复数据

3、无唯一列使用ROW_NUMBER()函数删除重复记录

如果表中没有唯一值的列,可以通过row_number 来删除重复数据 
重复执行插入脚本,查看表数据,表中没有唯一列值

SQL Server删除表中的重复数据

Delete T From
 (Select Row_Number() Over(Partition By [Name] order By [ID]) As RowNumber,* From Student)T
 Where T.RowNumber > 1

小知识点

语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)
         表示根据COLUMN分组,在分组内部根据 COLUMN排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
         函数“Row_Number”必须有 OVER 子句。OVER 子句必须有包含 ORDER BY
         Row_Number() Over(Partition By [Name] order By [ID])  表示已name列分组,在每组内以ID列进行升序排序,每组内返回一个唯一的序号

执行删除脚本后查询表数据

SQL Server删除表中的重复数据

到此这篇关于SQL Server删除表中重复数据的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。


Tags in this post...

SQL Server 相关文章推荐
SQL SERVER中常用日期函数的具体使用
Apr 08 SQL Server
SQLServer 日期函数大全(小结)
Apr 08 SQL Server
SqlServer 垂直分表(减少程序改动)
Apr 16 SQL Server
SQL 窗口函数实现高效分页查询的案例分析
May 21 SQL Server
SQL Server作业失败:无法确定所有者是否有服务器访问权限的解决方法
Jun 30 SQL Server
SQL Server中使用判断语句(IF ELSE/CASE WHEN )案例
Jul 07 SQL Server
Windows环境下实现批量执行Sql文件
Oct 05 SQL Server
SQL Server内存机制浅探
Apr 06 SQL Server
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
Apr 22 SQL Server
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
May 25 SQL Server
SQL Server中的逻辑函数介绍
May 25 SQL Server
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
May 25 #SQL Server
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
May 25 #SQL Server
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
May 25 #SQL Server
SQL Server使用PIVOT与unPIVOT实现行列转换
May 25 #SQL Server
SQL SERVER中的流程控制语句
May 25 #SQL Server
SQL Server中搜索特定的对象
May 25 #SQL Server
SQL Server使用T-SQL语句批处理
May 20 #SQL Server
You might like
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
css把超出的部分显示为省略号的方法兼容火狐
2008/07/23 Javascript
JavaScript性能优化 创建文档碎片(document.createDocumentFragment)
2010/07/13 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
jquery+json实现动态商品内容展示的方法
2016/01/14 Javascript
学习使用bootstrap基本控件(table、form、button)
2016/04/12 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
AngularJS前端页面操作之用户修改密码功能示例
2017/03/27 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
2017/07/10 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
2017/08/08 Python
python多线程与多进程及其区别详解
2019/08/08 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
python cookie反爬处理的实现
2020/11/01 Python
有关HTML5 Video对象的ontimeupdate事件(Chrome上无效)的问题
2013/07/19 HTML / CSS
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
天猫精选:上天猫,就够了
2016/09/21 全球购物
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
英国健身仓库:Bodybuilding Warehouse
2019/03/06 全球购物
英国的一家创新礼品和小工具零售商:Menkind
2019/08/24 全球购物
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
意大利值得信赖的在线超级药房:PillolaStore
2020/02/05 全球购物
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
个人股份转让协议书范本
2015/01/28 职场文书
利用Python实现翻译HTML中的文本字符串
2022/06/21 Python