首页 > 数据库技术 > 详细

SQL SERVER按多字段查找重复的数据并删除只保留一条

时间:2017-04-07 12:32:26      阅读:216      评论:0      收藏:0      [点我收藏+]

由于一次操作失误,给表中插入了多条重复的数据,所以就需要删除重复的数据只保留一条,一时想不到好方法,各种查资料,终于找到了,特意写到这里,方便以后自己用~

查询:

select A.n_PatentID,A.s_OtherFileName,A.s_FileName FROM TB_OtherFiles A,
(SELECT n_PatentID,s_OtherFileName,s_FileName FROM TB_OtherFiles
GROUP BY n_PatentID,s_OtherFileName,s_FileName HAVING COUNT(1)>=2
) AS B

WHERE A.s_OtherFileName=B.s_OtherFileName AND A.n_PatentID=B.n_PatentID AND A.s_FileName=B.s_FileName AND A.n_PatentID >0
order by n_PatentID

 

删除:

DELETE T FROM (SELECT n_PatentID,s_OtherFileName,s_FileName,s_recycle, ROW_NUMBER()OVER(PARTITION BY n_PatentID,s_OtherFileName,s_FileName ORDER BY RAND()) AS RN FROM TB_OtherFiles where n_PatentID>0) AS t WHERE RN>1 

 

SQL SERVER按多字段查找重复的数据并删除只保留一条

原文:http://www.cnblogs.com/yixuanhan/p/6677530.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!