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基本使用和简单的CRUD操作
Apr 05 SQL Server
SQL Server连接查询的实用教程
Apr 07 SQL Server
sqlserver2017共享功能目录路径不可改的解决方法
Apr 16 SQL Server
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
Jun 30 SQL Server
数据库之SQL技巧整理案例
Jul 07 SQL Server
sql server删除前1000行数据的方法实例
Aug 30 SQL Server
SQL Server表分区删除详情
Oct 16 SQL Server
SQL中的三种去重方法小结
Nov 01 SQL Server
使用MybatisPlus打印sql语句
Apr 22 SQL Server
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
Apr 22 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
php关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
解析php多线程下载远程多个文件
2013/06/25 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
php生成固定长度纯数字编码的方法
2015/07/09 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
js 点击按钮弹出另一页,选择值后,返回到当前页
2010/05/26 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
利用Keydown事件阻止用户输入实现代码
2014/03/11 Javascript
Node.js实现的简易网页抓取功能示例
2014/12/05 Javascript
jquery pagination插件动态分页实例(Bootstrap分页)
2016/12/23 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
vue中使用[provide/inject]实现页面reload的方法
2019/09/30 Javascript
python基础教程之缩进介绍
2014/08/29 Python
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
Python提取网页中超链接的方法
2016/09/18 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
python实现凯撒密码、凯撒加解密算法
2020/06/11 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
2020/06/29 Python
Python如何发送与接收大型数组
2020/08/07 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
zooplus波兰:在线宠物店
2019/07/21 全球购物
莫斯科购买书籍网站:Book24
2020/01/12 全球购物
Skechers越南官方网站:来自美国的运动休闲品牌
2021/02/22 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
应届毕业生自我评价分享
2013/12/15 职场文书
行政主管职责范本
2014/03/07 职场文书
养成教育经验材料
2014/05/26 职场文书
2014年学校后勤工作总结
2014/12/06 职场文书
大学军训口号大全
2015/12/24 职场文书
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js