删除重复行并保留一行 [英] Delete duplicate rows and keep one row

查看:51
本文介绍了删除重复行并保留一行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的表 Result_Simul 的名称

This the name of my table 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

How to keep just keep rows Pk=1 and Pk=3 and delete Pk=2 and Pk=4

谢谢你帮助我.

我不太擅长 Tsql

弗兰克

推荐答案

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

You can use row_number to give each duplicate an ascending number, and then delete the 2nd and higher duplicates:

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

SE Data 的工作示例.

这篇关于删除重复行并保留一行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆