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 
)

可参考其他博主文章:
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

4、sql分组,排序等一些函数的用法:
https://baijiahao.baidu.com/s?id=1718309685126464462&wfr=spider&for=pc
5、sql教程: https://www.yiibai.com/sql/sql-avg.html

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐