メインコンテンツへスキップ
メインコンテンツへスキップ

EXISTS

EXISTS 演算子は、サブクエリの結果にレコードが存在するかどうかを判定します。結果が空の場合、この演算子は 0 を返し、1 件以上存在する場合は 1 を返します。

EXISTSWHERE 句でも使用できます。

ヒント

メインクエリのテーブルおよびカラムへの参照は、サブクエリ内ではサポートされません。

構文

EXISTS(subquery)

サブクエリ内に値が存在するかどうかを確認するクエリ:

SELECT EXISTS(SELECT * FROM numbers(10) WHERE number > 8), EXISTS(SELECT * FROM numbers(10) WHERE number > 11)
┌─in(1, _subquery1)─┬─in(1, _subquery2)─┐
│                 1 │                 0 │
└───────────────────┴───────────────────┘

複数行を返す副問い合わせを使用したクエリ:

SELECT count() FROM numbers(10) WHERE EXISTS(SELECT number FROM numbers(10) WHERE number > 8);
┌─count()─┐
│      10 │
└─────────┘

結果が空になるサブクエリを含むクエリ:

SELECT count() FROM numbers(10) WHERE EXISTS(SELECT number FROM numbers(10) WHERE number > 11);
┌─count()─┐
│       0 │
└─────────┘