EXCEPT
EXCEPTはUNIONステートメントに似ていますが、EXCEPTが最初のクエリの結果であり、2番目のクエリの結果ではない行を生成する点が異なります。
注: EXCEPTは、OracleではMINUSと呼ばれます。
構文
<query_expression>
EXCEPT [ALL]
<query_expression>
備考
•UNIONやINTERSECTとは異なり、EXCEPTは可換ではありません。つまり、A EXCEPTBはBEXCEPT Aと同じではありません。それ以外の場合、ルールはUNIONの場合と同じです。
•EXCEPT ALLを使用する場合、行が最初のテーブルにx回、2番目のテーブルにy回表示されると、結果テーブルにz回表示されます。ここでz x --yまたは0(ゼロ)のいずれか大きい方です。
•EXCEPTは、EXCEPT ALLに似ており、重複を排除します。
•EXCEPTのみを使用すると、結果セットに重複がない結果が得られます。
•EXCEPT ALLを使用すると、値が重複する行が含まれます。
例(例外)
Studioリソースツリーのファイルに対する次のクエリは、サプライヤが存在するが顧客が存在しない都市を一覧表示します。
SELECT City
FROM /shared/examples/ds_inventory/suppliers
EXCEPT
SELECT City
FROM /shared/examples/ds_orders/customers
オークランドは、サプライヤーの結果セットで顧客の結果セットに含まれていない唯一の都市です。
例(すべてを除く)
SELECT City
FROM /shared/examples/ds_inventory/suppliers
EXCEPT ALL
SELECT City
FROM /shared/examples/ds_orders/customers
ALLを追加すると、サプライヤの結果セットに重複がある行が返されます。