次のようなデータを含むSQLServer2000のテーブルがあります。
ReferenceNumber ReferenceValue
00001 Not assigned
00002 Not assigned
00002 ABCDE
ここで、各ReferenceNumberは、ReferenceValueが「未割り当て」または真のReferenceValueのいずれかで、テーブルに複数回表示される可能性があります。
ReferenceNumberごとに1行だけで、存在する場合は真のReferenceValue、真のReferenceValueが存在しない場合は「未割り当て」のクリーンアップされたテーブルにデータをダンプしたいと思います。
私は2つのクエリでそれを行う方法を見ることができます:
SELECT TOP 1 ReferenceNumber, ReferenceValue
INTO clean
FROM duplicates
WHERE ReferenceValue <> 'Not assigned'
INSERT INTO clean(ReferenceNumber, ReferenceValue)
SELECT TOP 1 ReferenceNumber, ReferenceValue
WHERE ReferenceValue = 'Not assigned'
AND ReferenceNumber NOT IN (SELECT ReferenceNumber FROM clean)
しかし、もっと良い方法があるに違いないと思います。何か案は?