代码之家  ›  专栏  ›  技术社区  ›  Bryan

删除重复的SQL记录

  •  3
  • Bryan  · 技术社区  · 16 年前

    删除表中具有重复名称的记录的最简单方法是什么?我所得到的答案令人困惑。

    相关:

    Removing duplicate records from table

    2 回复  |  直到 9 年前
        1
  •  5
  •   balexandre    16 年前

    我得到了它!简单而且效果很好。

    delete 
       t1 
    from 
       tTable t1, tTable t2 
    where 
       t1.locationName = t2.locationName and  
       t1.id > t2.id 
    

    http://www.cryer.co.uk/brian/sql/sql_delete_duplicates.htm

        2
  •  0
  •   n8wrl    16 年前

    SQL Server 2005:

    with FirstKey
    AS
    (
        SELECT MIN(ID), Name, COUNT(*) AS Cnt
          FROM YourTable
         GROUP BY Name
         HAVING COUNT(*) > 1
    )
    DELETE YourTable
      FROM YourTable YT
      JOIN FirstKey FK ON FK.Name = YT.Name AND FK.ID != YT.ID