• SQL如何去除数据表中重复的数据


    我们可以用关键字Distinct去掉结果集中重复的元素,但是这样并不能删除数据库中重复的元素。
    如果想把数据表某个字段重复的数据删除,利用临时表作为中转站是个好方法。
    设想我们想把数据表Tb_Blogs中字段BlogUrl有重复值的数据多余的行删掉(有相同的BlogUrl的数据只保留一行),那么我们可以这样做:

    select *  into #temp1 from Tb_Blogs where ID in (select Max(ID) from Tb_Blogs group by BlogUrl)

    这个语句把没有重复的数据全部保存到临时表#temp1中(注意我这个表中有主键ID,如果没有主键的行那就应该在临时表中建立主键,然后在临时表中再进行去重复行,再建立另外一个临时表来保存没有重复行的数据),然后

    drop table tb_blogs

    删除表tb_blogs

    select * into tb_blogs from #temp1

    把临时表没有重复行的数据全部倒回到tb_blogs中
    drop table #temp1
    删除临时表

    当我以为上面的是个好方法时,蜘蛛却让我感到自己瞎折腾了,原来还有更好的方法:

    Delete from Tb_Blogs where [ID] Not In (Select Max([ID]) from Tb_Blogs Group by [BlogUrl])

    作者:边写边唱

    文章出处:http://www.cnblogs.com/zoupeiyang

    专注于用自助终端技术实现互联网+,有兴趣朋友欢迎关注   捷思科技

  • 相关阅读:
    linux下的crontab定时执行任务命令详解
    494. Target Sum
    347. Top K Frequent Elements
    5. Longest Palindromic Substring
    时间复杂度计算方法
    62. Unique Paths
    54. Spiral Matrix && 59. Spiral Matrix II
    57. Insert Interval
    53. Maximum Subarray
    42.Trapping rain water
  • 原文地址:https://www.cnblogs.com/zoupeiyang/p/1497786.html
Copyright © 2020-2023  润新知