跳到主要内容
跳到主要内容
编辑此页

EXISTS

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 │
└─────────┘