除了TOP 1记录之外的表中的UPDATE记录

pra*_*rav 1 t-sql sql-server ssis sql-server-2008

我有业务场景

  1. 我们将把所有数据都包含在数据库中,包括重复数据

  2. 如果我们在表中有任何重复,则通过使所有剩余的deplicate记录标记为'X'来从特定键上的重复项中获取最新记录

  3. 处理到下一级别时会通过flag!='X'过滤提取,因此我们只能从一个关键字密钥的所有副本中获取一条最新记录.

我们如何更新除TOP 1记录之外的所有记录.

有什么想法吗

谢谢

prav

Rem*_*anu 9

可更新的cte:

with cte as (
select *, row_number () over (partition by foo order by bar) as rn
from table)
update cte
set flag = x
where rn > 1;
Run Code Online (Sandbox Code Playgroud)