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 05 SQL Server
在 SQL 语句中处理 NULL 值的方法
Jun 07 SQL Server
SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户 WIN-8IVSNAQS8T7\Administrator 的信息
Jun 30 SQL Server
SQLServer之常用函数总结详解
Aug 30 SQL Server
Windows环境下实现批量执行Sql文件
Oct 05 SQL Server
详解在SQLPlus中实现上下键翻查历史命令的功能
Mar 18 SQL Server
SQL Server远程连接的设置步骤(图文)
Mar 23 SQL Server
sql server偶发出现死锁的解决方法
Apr 10 SQL Server
SQL Server数据库查询出现阻塞之性能调优
Apr 10 SQL Server
SQL Server 中的事务介绍
May 20 SQL Server
SQL Server使用PIVOT与unPIVOT实现行列转换
May 25 SQL Server
SqlServer常用函数及时间处理小结
May 08 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
增加反向链接的101个方法 站长推荐
2007/01/31 PHP
php多用户读写文件冲突的解决办法
2013/11/06 PHP
谈谈 PHP7新增功能
2015/12/16 PHP
PHP使用redis消息队列发布微博的方法示例
2017/06/22 PHP
laravel实现简单用户权限的示例代码
2019/05/28 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
JavaScript极简入门教程(一):基础篇
2014/10/25 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
浅谈JS运算符&&和|| 及其优先级
2016/08/10 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
jQuery快速高效制作网页交互特效
2017/02/24 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
Web制作验证码功能实例代码
2017/06/19 Javascript
react+redux的升级版todoList的实现
2017/12/18 Javascript
JS实现点击下拉菜单把选择的内容同步到input输入框内的实例
2018/01/23 Javascript
vue弹窗消息组件的使用方法
2020/09/24 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
vue实现购物车的监听
2020/04/20 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
python实现在pandas.DataFrame添加一行
2018/04/04 Python
Python多进程写入同一文件的方法
2019/01/14 Python
python使用socket 先读取长度,在读取报文内容示例
2019/09/26 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
python中温度单位转换的实例方法
2020/12/27 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
The Athlete’s Foot新西兰:新西兰最大的运动鞋零售商
2019/12/23 全球购物
土耳其新趋势女装购物网站:Addax
2020/01/07 全球购物
医药营销个人求职信
2014/04/12 职场文书
鉴定评语大全
2014/05/05 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
招标保密承诺书
2015/01/20 职场文书
中学综治宣传月活动总结
2015/05/07 职场文书
python周期任务调度工具Schedule使用详解
2021/11/23 Python
深入讲解数据库中Decimal类型的使用以及实现方法
2022/02/15 MySQL
python中 .npy文件的读写操作实例
2022/04/14 Python
python如何查找列表中元素的位置
2022/05/30 Python