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‘);
select name from Student group by name having count(name) > 1
检查表中是否有主键或者唯一值的列,当前可以数据看到ID是唯一的,可以通过name分组排除掉ID最大或最小的行
delete from Student where name in( 1) and ID not in(select max(ID) 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列进行升序排序,每组内返回一个唯一的序号
执行删除脚本后查询表数据
总结以上是内存溢出为你收集整理的SQLServer 删除表中的重复数据全部内容,希望文章能够帮你解决SQLServer 删除表中的重复数据所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)