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

时间:2011-08-08 08:56:06

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

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

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

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

我已经获取了所谓的重复记录,但没有想到如何在这N条记录中更新N-1记录。

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

1 个答案:

答案 0 :(得分: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是识别重复项所需的字段。这可能是所有字段,具体取决于您对重复的定义。