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 相关文章推荐
2021-4-5课程——SQL Server查询【3】
Apr 05 SQL Server
SQL Server数据定义——模式与基本表操作
Apr 05 SQL Server
SqlServer: 如何更改表的文件组?(进而改变存储位置)
Apr 05 SQL Server
SQL 窗口函数实现高效分页查询的案例分析
May 21 SQL Server
SQLServer中JSON文档型数据的查询问题解决
Jun 27 SQL Server
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
Jun 30 SQL Server
数据库之SQL技巧整理案例
Jul 07 SQL Server
SQL Server内存机制浅探
Apr 06 SQL Server
SQL Server使用导出向导功能
Apr 08 SQL Server
SQL Server表分区降低运维和维护成本
Apr 08 SQL Server
SQL Server中使用表变量和临时表
May 20 SQL Server
SQL Server使用PIVOT与unPIVOT实现行列转换
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
延长phpmyadmin登录时间的方法
2011/02/06 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
PHP输出缓冲控制Output Control系列函数详解
2015/07/02 PHP
PHP解析url并得到url参数方法总结
2018/10/11 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
Cookies 和 Session的详解及区别
2017/04/21 Javascript
JS实现新建文件夹功能
2017/06/17 Javascript
jQury Ajax使用Token验证身份实例代码
2017/09/22 Javascript
Bootstrap 树控件使用经验分享(图文解说)
2017/11/06 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
javaScript中"=="和"==="的区别详解
2018/03/16 Javascript
如何把vuejs打包出来的文件整合到springboot里
2018/07/26 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
Django 使用logging打印日志的实例
2018/04/28 Python
Python正则表达式和元字符详解
2018/11/29 Python
在Python中字典根据多项规则排序的方法
2019/01/21 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
乌克兰移动电子产品和相关配件的在线商店:iTMag
2020/03/16 全球购物
《雨霖铃》教学反思
2014/02/22 职场文书
诚信承诺书范文
2014/03/27 职场文书
银行内勤岗位职责
2014/04/09 职场文书
中专毕业生的自荐书
2014/07/01 职场文书
内勤岗位职责范本
2015/04/13 职场文书
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python