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 相关文章推荐
SQLServer2019 数据库环境搭建与使用的实现
Apr 08 SQL Server
Windows环境下实现批量执行Sql文件
Oct 05 SQL Server
SQL SERVER触发器详解
Feb 24 SQL Server
Sql Server之数据类型详解
Feb 28 SQL Server
SQL Server中常用截取字符串函数介绍
Mar 16 SQL Server
SQL Server的存储过程与触发器以及系统函数和自定义函数
Apr 10 SQL Server
MSSQL基本语法操作
Apr 11 SQL Server
SQL Server 中的事务介绍
May 20 SQL Server
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
May 25 SQL Server
SQL Server2019安装的详细步骤实战记录(亲测可用)
Jun 10 SQL Server
在SQL Server中使用 Try Catch 处理异常的示例详解
Jul 15 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
php防盗链的常用方法小结
2010/07/02 PHP
PHP中cookie和session的区别实例分析
2014/08/28 PHP
php生成zip文件类实例
2015/04/07 PHP
JSON字符串传到后台PHP处理问题的解决方法
2016/06/05 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
jquery动画2.元素坐标动画效果(创建一个图片走廊)
2012/08/24 Javascript
zTree插件之多选下拉菜单实例代码
2013/11/06 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
javascript闭包入门示例
2014/04/30 Javascript
jQuery照片伸缩效果不影响其他元素的布局
2014/05/09 Javascript
jQuery中outerWidth()方法用法实例
2015/01/19 Javascript
第五篇Bootstrap 排版
2016/06/21 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
javascript iframe跨域详解
2016/10/26 Javascript
获取url中用&隔开的参数实例(分享)
2017/05/28 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
2019/09/28 Python
Python实现遗传算法(二进制编码)求函数最优值方式
2020/02/11 Python
python标准库sys和OS的函数使用方法与实例详解
2020/02/12 Python
python如何输出反斜杠
2020/06/18 Python
CSS3使用多列制作瀑布流
2016/05/10 HTML / CSS
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
Reebok官方旗舰店:美国知名健身品牌锐步
2019/01/07 全球购物
希腊香水和化妆品购物网站:Parfimo.gr
2019/10/03 全球购物
怎么写好自荐信
2013/10/30 职场文书
2014县政府领导班子对照检查材料思想汇报
2014/09/25 职场文书
2014年学校财务工作总结
2014/12/06 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
2015年扶贫帮困工作总结
2015/05/20 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
导游词之云南丽江-泸沽湖
2019/09/26 职场文书