首页 / 问答 / SQL Server数据库如何使用一条语句删除重复的(只保留一条)数据呢?

SQL Server数据库如何使用一条语句删除重复的(只保留一条)数据呢?

0

在SQL Server数据库中,有一张数据表存储着十几万或者更多的数据记录,其中有部分数据的某些列/字段是重复的,现需要删除这些列/字段重复的数据(只保留一条不重复的数据),使用一条SQL语句应用如何实现呢?

表结构类似如下:

RowID int not null identity(1,1) primary key,
Col1 varchar(20) not null,
Col2 varchar(2048) not null,
Col3 tinyint not null

其中的RowID是惟一的,但每一行的Col1,Col2,Col3这些字段的数据可能重复。

回复 [×]
提交评论
请输入评论内容

4 个回答

  • 0

    使用CTE语句和ROW_NUMBER()PARTITION作子查询,为重复的记录分组并编号,然后删除编号大于1的重复记录,SQL脚本如下:

    Rector的个人主页

    Rector

    2020-04-30 回答

    • 0

      使用GROUP BY找到一个需要保留的记录的RowID作子查询,然后使用LEFT JOIN来关联这个子查询并使用DELETE FROM语句删除右表中RowIDNULL的行即可,如下:

      Rector的个人主页

      Rector

      2020-04-30 回答

      • 0

        使用”自连接”关联来删除重复数据,SQL脚本如下:

        Rector的个人主页

        Rector

        2020-04-30 回答

        • 0

          使用GROUP BY HAVING()语法来作子查询,并用NOT IN作为查询条件,SQL脚本如下:

          Rector的个人主页

          Rector

          2020-04-30 回答

          我来回答