【问题标题】:Delete duplicate rows and keep one row删除重复行并保留一行
【发布时间】:2017-08-29 21:13:15
【问题描述】:

这是我的表 Result_Simul 的名称

这是价值

       Pk   FkIdResult   FkIdSimul
       1        43         1244
       2        43         1244
       3        52         1244
       4        52         1244

如何只保留行 Pk=1 和 Pk=3 并删除 Pk=2 和 Pk=4

谢谢你帮助我。

我不太擅长 Tsql

弗兰克

【问题讨论】:

  • 你用的是什么版本的sql-server?

标签: sql-server sql-server-2008 tsql


【解决方案1】:

您可以使用row_number 为每个重复项指定一个升序,然后删除第 2 个及更高的重复项:

delete  tbl
from    (
        select  row_number() over (partition by FkIdResult, FkIdSimul 
                                  order by Pk desc) as rn
        ,       *
        from    YourTable
        ) tbl
where   rn > 1

Working example at SE Data.

【讨论】:

    猜你喜欢
    • 2011-08-31
    • 1970-01-01
    • 2013-04-08
    • 2016-10-28
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 2019-10-27
    • 2021-12-28
    相关资源
    最近更新 更多