2011-08-08 11 views
1

データベーステーブル(SQL SERVER 2005)のN重複レコードから(N-1)レコードを更新する方法データベーステーブル(SQL SERVER 2005)のN重複レコードから(N-1)レコードを更新する方法

背景:他の2つのテーブルのレコードを比較して挿入した後に、一時テーブルを生成しています。

ので一時テーブルには、いくつかの重複したフィールド(たとえば:注文ID、トランザクションIDなどを...)持っているいくつかのレコードを持っている - しかし、されている個別の

私は、このような、いわゆる重複レコードをフェッチしていますが得ることはありませんこれらのNレコードの中でN-1レコードを更新する方法のアイデア。

何か助けてください(特にサンプルコード)。 ありがとうございます。

答えて

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は、重複を識別するために必要なフィールドです。これは、重複の定義に応じて、潜在的にすべてのフィールドです。

+0

WOW動作します。ありがとうございましたDems - これは素晴らしいです。 – Saliaziz

関連する問題