1

2 つのレコード セットが異なるかどうかを知りたい。そのために a を使用full outer joinします。簡単な例:

select count(*) from 
(
 select 1 as c
 union 
 select 2 as c 
) t1
full outer join 
(
 select 1 as c 
 union 
 select 3 as c
) t2 on t1.c = t2.c
where t1.c is null or t2.c is null

SQLフィドル

レコード セットが等しい場合、 は をcount()返します0

それを達成するためのより良い方法はありますか?

4

2 に答える 2

1

cレコード セット内で一意の場合は、次のように and を使用して実行できますGROUP BYHAVING

SELECT COUNT(*) FROM (
    SELECT c FROM (
        SELECT c FROM record_set_1
    UNION ALL
        SELECT c FROM record_set_2
    ) all_data
    GROUP BY c
    HAVING COUNT(*) <> 2
) non_matched

SQLフィドル

于 2013-11-13T16:38:34.700 に答える