【问题标题】:how to update (N-1) records from the N duplicate records in a database table (SQL SERVER 2005)如何从数据库表中的 N 个重复记录中更新 (N-1) 个记录 (SQL SERVER 2005)
【发布时间】:2011-08-08 17:13:21
【问题描述】:

如何从数据库表中的 N 个重复记录中更新 (N-1) 条记录 (SQL SERVER 2005)

背景:在比较和插入其他两个表的记录后,我正在生成一个临时表。

所以临时表有一些记录,其中有一些重复的字段(例如:订单 ID、交易 ID 等...) - 但是是不同的

我已经获取了所谓的重复记录,但不知道如何更新这 N 条记录中的 N-1 条记录。

感谢任何帮助(尤其是示例代码)。 提前致谢。

【问题讨论】:

    标签: sql sql-server sql-server-2005


    【解决方案1】:
    WITH duplicates AS (
      SELECT
        ROW_NUMBER() OVER (PARTITION BY x,y,z ORDER BY a,b,c) AS duplicate_id,
        *
      FROM
        myData
    )
    
    UPDATE
      duplicates
    SET
      foo = bar
    WHERE
      duplicate_id > 1
    

    x,y,z 是识别重复项所需的字段。这可能是所有字段,具体取决于您对重复项的定义。

    【讨论】:

      猜你喜欢
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多