ANSI SQL には IS [NOT] DISTINCT FROM
があります まだ SQL Server に実装されていない構造 (接続リクエスト
)。
この機能をシミュレート
EXCEPT
を使用して SQL Server で /INTERSECT
でも。これらはどちらも NULL
を扱います 比較すると等しい。キー列が同じで、値列が異なる行を見つけたいと考えています。
SELECT * FROM SourceTable S JOIN DestinationTable D ON S.Key1 = D.Key1 /*Join the key columns on equality*/ AND NOT EXISTS (SELECT S.Key2, S.Key3 EXCEPT SELECT D.Key2, D.Key3) /*and the value columns on unequality*/ AND NOT EXISTS (SELECT S.Value1, S.Value2 INTERSECT SELECT D.Value1, D.Value2)
プレ>