メインコンテンツへスキップ
EXCEPT 句は、2 番目のクエリの結果を除いた、1 番目のクエリの結果の行だけを返します。
  • 両方のクエリは、同じ順序で、同じ数のカラムと同じデータ型を持っている必要があります。
  • EXCEPT の結果には、重複する行が含まれる場合があります。これが望ましくない場合は、EXCEPT DISTINCT を使用してください。
  • 括弧が指定されていない場合、複数の EXCEPT ステートメントは左から右に実行されます。
  • EXCEPT 演算子の優先順位は UNION 句と同じで、INTERSECT 句より低くなります。

構文

条件には、要件に応じて任意の式を指定できます。 さらに、BigQuery (Google Cloud) と同様に、次の構文を使用して、EXCEPT() で同じテーブルの結果からカラムを除外できます。

このセクションの例では、EXCEPT 句の使い方を示します。

EXCEPT 句を使用した数値の絞り込み

以下は、1 から 10 までの数値のうち、3 から 8 までに含まれないものを返す簡単な例です。
Query
Response

EXCEPT() を使用して特定のカラムを除外する

EXCEPT() を使うと、結果からカラムをすばやく除外できます。たとえば、以下の例のように、テーブル内のすべてのカラムを選択しつつ、特定のいくつかのカラムだけを除外したい場合に便利です。
Query
Response

仮想通貨データで EXCEPTINTERSECT を使う

EXCEPTINTERSECT は、Boolean 論理は異なるものの、しばしば同じような場面で使えます。どちらも、共通のカラムを 1 つ以上持つ 2 つのテーブルがある場合に有用です。 たとえば、売買価格と出来高を含む、数百万行規模の過去の仮想通貨データがあるとします。
Query
Response
ここで、保有している暗号通貨の一覧と各コインの数量を含む holdings というテーブルがあるとします。
Query
**「保有しているコインのうち、これまで一度も $10 未満で取引されたことがないものはどれか?」**のような問いには、EXCEPT を使用して答えられます。
Query
Response
つまり、この例の限られたデータを見るかぎり、保有している4種類の暗号通貨のうち、Bitcoin だけは一度も10ドルを下回っていません。

EXCEPT DISTINCT の使用

前のクエリでは、結果に Bitcoin の保有データが複数含まれていました。EXCEPTDISTINCT を追加すると、結果から重複した行を除去できます。
Query
Response
関連項目
最終更新日 2026年6月19日