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的条件过滤出多余的重复记录进行删除。

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

  • 相关阅读:
    撒谎
    可怜的猪
    GIS学习笔记(五)
    国产木马冰河2.2
    矛盾
    GIS学习笔记(六)
    男人如衣服
    VS2005快捷键大全
    慧悟
    DOS命令
  • 原文地址:https://www.cnblogs.com/yanggb/p/11159912.html
Copyright © 2011-2022 走看看