SqlServersql 如何去重和删除重复数据

可参考其他博主文章:
1、Distinct和Group by去除重复字段记录,用临时表去多个字段的重复 SQLServerhttps://www.cnblogs.com/oufeiyan100/articles/5105960.html
2、Mysql数据库中查询重复数据和去重数据 , 删除重复数据的sql及分析
https://blog.csdn.net/zzzgd_666/article/details/80718139
3、ORACLE环境下-SQL查询和删除重复值
https://segmentfault.com/a/1190000011560849

SqlServer没有oracle的rowid查询去重,只有distinct查询去重,但是用于删除不便。
SQLServer ROW_NUMBER()函数使用方法 分区排序
1、对数据进行分组排序后进行查询 并删除多条的重复数据
select ROW_NUMBER() over(partition by xm Order by xm ASC) As no,xm from 表

ROW_NUMBER( ) 起到了编号的功能
partition by 将相同数据进行分区
order by 使得数据按一定顺序排序
具体语句如下:
尤其在做删除操作前记得备份!!
delete from 表 where id in (
select id from (
select ROW_NUMBER() over(partition by 字段 Order by 字段 ASC) As no from 表
) a where no>1
)

猜你喜欢

转载自blog.csdn.net/me_Jackyoyo/article/details/111383552