sql删除重复记录的n种方法

sql删除重复记录的n种方法

ID:14216720

大小:35.50 KB

页数:4页

时间:2018-07-26

sql删除重复记录的n种方法_第1页
sql删除重复记录的n种方法_第2页
sql删除重复记录的n种方法_第3页
sql删除重复记录的n种方法_第4页
资源描述:

《sql删除重复记录的n种方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、SQL删除重复记录的N种方法--<一>:selectdistinct*into#tempfrom表truncatetable表insert表select*from#tempdroptable--<二>带有标识列--备份数据select*into#tempfrom表altertable#tempdropcolumnid--删除原表数据truncatetablemsgtable--恢复数据并去掉重复数据insertinto表selectdistinct*from#temp--<三>deleteFromaawhereain(se

2、lectaFromaagroupbyahavingcount(a)>1)--<四>altertable表addnewfieldintidentity(1,1)delete表wherenewfieldnotin(selectmin(newfield)from表groupby除newfield外的所有字段)altertable表dropcolumnnewfield--<五>--添加一个处理的标识字段altertable表addidintidentity(1,1)go   --删除重复记录deleteafrom表aleftjoi

3、n(selectid=min(id)from表groupbya,b)bona.id=b.idwhereb.idisnullgo--删除处理用的标识字段altertable表dropcolumnid--参考:/*一张表里面以两个字段为唯一字段,当几条记录的这两个字段完全相同时,需要删除重复项,如下表   a  b  c  d   1  2  3  4   1  5  3  5   1  2  7  9   以a、b为唯一字段,第一条和第三条的a、b完全相同,所以,需要删除第一条记录1  2  3  4  或者第三条记录1  

4、2  7  9   即如下结果:   a  b  c  d   1  2  3  4   1  5  3  5   或   a  b  c  d   1  5  3  5   1  2  7  9      请问各位大侠这种sql语句怎么写*/    CREATETABLETb1(idint,[a]varchar(255),[b]varchar(255),[c]varchar(255),[d]varchar(255))INSERTTb1(id,[a],[b],[c],[d])SELECT1,'1','2','3','4'U

5、NIONALLSELECT2,'1','5','3','5'UNIONALLSELECT3,'1','2','7','9'UNIONALLSELECT4,'1','4','7','6'deleteTb1where[id]notin(selectmax([id])fromTb1groupbya,b)select*fromtb1droptabletb1如果要同时删除第一和第三行即如下结果:abcd1535语句如下:deletemfromtbtinnerjoin(selecta,bfromtbgroupbya,bhavingco

6、unt(*)>1)nonm.a=n.aandm.b=n.b或delete*fromtbasm,(selecta,bfromtbgroupbya,bhavingcount(*)>1)nwherem.a=n.aandm.b=n.b--在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?谢谢!1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select*frompeoplewherepeopleIdin(selectpeopleIdfrompeoplegroupbypeopleId

7、havingcount(peopleId)>1)2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录deletefrompeoplewherepeopleIdin(selectpeopleIdfrompeoplegroupbypeopleIdhavingcount(peopleId)>1)androwidnotin(selectmin(rowid)frompeoplegroupbypeopleIdhavingcount(peopleId)>1)3、查找表中多余的重复记录(

8、多个字段)select*fromvitaeawhere(a.peopleId,a.seq)in(selectpeopleId,seqfromvitaegroupbypeopleId,seqhavingcount(*)>1)4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录deletefr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。