cha*_*ish 1 sql t-sql sql-server
|Rownumber |OldIdassigned |commoncode |
------------------------------------------
| 1 |FLEX |Y2573F102 |
------------------------------------------
| 2 |RCL |Y2573F102 |
------------------------------------------
| 3 |FLEX |Y2573F102 |
------------------------------------------
| 4 |QGEN |N72482123 |
------------------------------------------
| 5 |QGEN |N72482123 |
------------------------------------------
| 6 |QGEN |N72482123 |
------------------------------------------
| 7 |RACE |N72482123 |
------------------------------------------
| 8 |CLB |N22717107 |
------------------------------------------
| 9 |CLB |N22717107 |
------------------------------------------
<b>| 10 |CLB |N22717107 |
Run Code Online (Sandbox Code Playgroud)
我需要根据公共代码和条件删除重复记录 - 如果oldidassigned相同则删除else不删除.
例如Y2573F102有3个重复记录行1,2,3 .... 1,2不需要删除,只有第3行必须删除.
我为此目的喜欢可更新的CTE和窗口函数:
with todelete as (
select t.*,
row_number() over (partition by commoncode order by rownumber) as seqnum
from t
)
delete todelete
where seqnum > 1;
Run Code Online (Sandbox Code Playgroud)