跳转到主要内容
EXISTS 运算符用于检查子查询结果中是否有记录。如果结果为空,则返回 0;否则返回 1 EXISTS 也可用于 WHERE 子句。

子查询不支持引用主查询中的表和列。
语法
EXISTS(subquery)
示例 检查子查询中值是否存在的查询:
Query
SELECT EXISTS(SELECT * FROM numbers(10) WHERE number > 8), EXISTS(SELECT * FROM numbers(10) WHERE number > 11)
Response
┌─in(1, _subquery1)─┬─in(1, _subquery2)─┐
│                 1 │                 0 │
└───────────────────┴───────────────────┘
包含返回多行的子查询的查询:
Query
SELECT count() FROM numbers(10) WHERE EXISTS(SELECT number FROM numbers(10) WHERE number > 8);
Response
┌─count()─┐
│      10 │
└─────────┘
带有返回空结果的子查询的查询:
Query
SELECT count() FROM numbers(10) WHERE EXISTS(SELECT number FROM numbers(10) WHERE number > 11);
Response
┌─count()─┐
│       0 │
└─────────┘
最后修改于 2026年6月10日