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