zoukankan      html  css  js  c++  java
  • sql server删除重复记录只保留一条

    今天遇到一个历史导入数据重复的问题,于是要删除重复的记录,一开始想用子查询的方式找到要删除记录的id删除,后来发现DELETE语句可以直接用外连接,这样更加简单,效率也更高。

    delete sys_project
    from sys_project as aa
    left join (
        select min(id) as id from sys_project 
        group by sysCode
    ) as bb
    on aa.id = bb.id
    where bb.id is null

    这里就是通过左外连接查询出按照sysCode分组的所有重复或不重复的记录组中的第一条记录(通过min(id)找出id最小的一条),如果左外连接没有匹配的记录,则左外连接的记录是空的,即可以通过bb.id is null的条件过滤出多余的重复记录进行删除。

    "笨,是一种高级的情商,所谓学会笨一点,就是不懂的事不要瞎做,不明白的话不要乱说。"

  • 相关阅读:
    luogu P1396 营救
    luogu P2009 跑步
    2017 9 22
    2017 9 22 模拟赛T2
    2017 9 21
    luogu P1433 吃奶酪
    luogu p1867【Mc生存】经验值
    luogu p1387 最大正方形
    单例模式1
    Java 设计模式
  • 原文地址:https://www.cnblogs.com/yanggb/p/11159912.html
Copyright © 2011-2022 走看看