SQL Server テーブルの比較: 相違点を見つけるための包括的なガイド
2 つの SQL Server テーブル間のデータの不整合を特定するには、どちらかのテーブルに固有の行を正確に特定する方法が必要です。次のクエリはこれを効率的に実現します:
<code class="language-sql">(SELECT * FROM table1 EXCEPT SELECT * FROM table2) UNION ALL (SELECT * FROM table2 EXCEPT SELECT * FROM table1)</code>
クエリの内訳:
EXCEPT
演算子は、table1
には存在するが table2
には存在しない行を分離します。UNION ALL
は、最初の EXCEPT
操作の結果を EXCEPT
上のミラー化された table2
操作とマージし、すべての不一致を明らかにします。例:
TempTestData
と RealData
という 2 つのテーブルがあり、それぞれに列 FirstName
、LastName
、Product
があるとします。これらの列全体で異なる値を持つ行を検出するには、次のクエリを使用します:
<code class="language-sql">(SELECT * FROM TempTestData EXCEPT SELECT * FROM RealData) UNION ALL (SELECT * FROM RealData EXCEPT SELECT * FROM TempTestData)</code>
このクエリは、両方のテーブルの指定された列のいずれかに差異があるすべての行を返します。
重要な考慮事項:
NULL
値を含むテーブルの場合、LEFT JOIN
または FULL OUTER JOIN
は、NULL
と比較してより堅牢な EXCEPT
比較処理を提供します。以上が2 つの SQL Server テーブル間の違いを見つける方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。