EXCEPT 句は、2 番目のクエリの結果を除いた、1 番目のクエリの結果の行だけを返します。
- 両方のクエリは、同じ順序で、同じ数のカラムと同じデータ型を持っている必要があります。
EXCEPTの結果には、重複する行が含まれる場合があります。これが望ましくない場合は、EXCEPT DISTINCTを使用してください。- 括弧が指定されていない場合、複数の
EXCEPTステートメントは左から右に実行されます。 EXCEPT演算子の優先順位はUNION句と同じで、INTERSECT句より低くなります。
構文
EXCEPT() で同じテーブルの結果からカラムを除外できます。
例
EXCEPT 句の使い方を示します。
EXCEPT 句を使用した数値の絞り込み
Query
Response
EXCEPT() を使用して特定のカラムを除外する
EXCEPT() を使うと、結果からカラムをすばやく除外できます。たとえば、以下の例のように、テーブル内のすべてのカラムを選択しつつ、特定のいくつかのカラムだけを除外したい場合に便利です。
Query
Response
仮想通貨データで EXCEPT と INTERSECT を使う
EXCEPT と INTERSECT は、Boolean 論理は異なるものの、しばしば同じような場面で使えます。どちらも、共通のカラムを 1 つ以上持つ 2 つのテーブルがある場合に有用です。
たとえば、売買価格と出来高を含む、数百万行規模の過去の仮想通貨データがあるとします。
Query
Response
holdings というテーブルがあるとします。
Query
EXCEPT を使用して答えられます。
Query
Response
EXCEPT DISTINCT の使用
EXCEPT に DISTINCT を追加すると、結果から重複した行を除去できます。
Query
Response