首页 > 其他 > 详细

关于重复记录

时间:2014-03-26 01:06:17      阅读:349      评论:0      收藏:0      [点我收藏+]

  日常工作中经常会遇到重复的数据,今天写下重复数据的查询和删除。备忘贴。

  先来看下表结构吧

     bubuko.com,布布扣

   

查询重复记录
方式A
SELECT * FROM MyDuplicateData a  WHERE id<(SELECT MAX(id) FROM MyDuplicateData WHERE stuname=a.stuname)
方式B
SELECT * FROM MyDuplicateData a WHERE EXISTS(SELECT 1 FROM MyDuplicateData b WHERE a.stuid=b.stuid AND a.stuname=b.stuname AND a.birthdat=b.birthdat AND a. areaorganid=b.areaorganid AND a.id<b.id ) 删除 方式A DELETE a FROM MyDuplicateData a WHERE EXISTS(SELECT 1 FROM MyDuplicateData b WHERE a.stuid=b.stuid AND a.stuname=b.stuname AND a.birthdat=b.birthdat AND a.areaorganid=b.areaorganid AND a.id<b.id )
方式B(使用CTE) ;
WITH mycte AS ( SELECT ROW_NUMBER() OVER (PARTITION BY stuname ORDER BY id ASC) AS num,* FROM MyDuplicateData ) DELETE FROM mycte WHERE id NOT IN(SELECT id FROM mycte WHERE num=1)

关于重复记录,布布扣,bubuko.com

关于重复记录

原文:http://www.cnblogs.com/mfkaudx/p/3623527.html

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