EXISTS 演算子は、サブクエリの結果にレコードが存在するかどうかを確認します。結果が空の場合、この演算子は 0 を返します。空でない場合は、1 を返します。
EXISTS は WHERE 句でも使用できます。
構文
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 │
└─────────┘