6

まったく同じ構造、つまり同じ列を持つ 2 つのテーブルがあります。両方のテーブルに存在するが、すべての列の一致する値がまったく同じではない行の数を調べたいです。たとえば、テーブルには列 ID、名前、国があります。Id は主キーです。Id=1 が両方のテーブルに存在する場合、他の値も一致する必要があります。現在、私はこの種のステートメントを使用しています。

SELECT  COUNT(*)
FROM    ##Table1 t1 ,
        ##Table2 t2
WHERE   t1.Id = t2.Id
        AND ( t1.Name != t2.name
              OR t1.Country != t2.Country
            )  

テーブルの列が多すぎるため、これは扱いにくくなっています。それを行うより良い方法はありますか?

4

2 に答える 2

4
SELECT COUNT(*)
FROM   ##Table1 t1
       JOIN ##Table2 t2
         ON t1.Id = t2.Id
            AND EXISTS (SELECT t1.*
                        EXCEPT
                        SELECT t2.*) 

SQL フィドル

于 2013-09-09T14:36:24.873 に答える