删除重复的行并保留一行

Fra*_*arp 5 t-sql sql-server sql-server-2008

这是我的表Result_Simul的名称

这是价值

       Pk   FkIdResult   FkIdSimul
       1        43         1244
       2        43         1244
       3        52         1244
       4        52         1244
Run Code Online (Sandbox Code Playgroud)

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

谢谢你的帮助.

我在Tsql中并不是很好

坦率

And*_*mar 12

您可以使用row_number为每个副本提供一个升序号,然后删除第二个和更高的重复项:

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

SE Data的工作示例.