en draft (EXISTS)

This commit is contained in:
Alexey 2021-11-12 20:02:26 +00:00
parent 1579bcfd20
commit 398e164e46
3 changed files with 34 additions and 1 deletions

View File

@ -0,0 +1,29 @@
# EXISTS {#exists-operator}
The `EXISTS` operator tests how many records are in the result of a subquery. If it is empty, then the operator returns `0`. Otherwise it returns `1`.
!!! warning "Warning"
References to main query tables and columns are not supported in a subquery.
**Syntax**
```sql
WHERE EXISTS(subquery)
```
**Example**
Query:
``` sql
SELECT 'Exists' WHERE EXISTS (SELECT * FROM numbers(10) WHERE number < 2);
SELECT 'Empty subquery' WHERE EXISTS (SELECT * FROM numbers(10) WHERE number > 12);
```
The first query returns one row. The second query does not return rows because the result of the subquery is empty.
``` text
┌─'Exists'─┐
│ Exists │
└──────────┘
```

View File

@ -71,7 +71,7 @@ For tuple subtraction: [tupleMinus](../../sql-reference/functions/tuple-function
## Operators for Working with Data Sets {#operators-for-working-with-data-sets}
*See [IN operators](../../sql-reference/operators/in.md).*
See [IN operators](../../sql-reference/operators/in.md) and [EXISTS](../../sql-reference/operators/exists.md) operator.
`a IN ...` The `in(a, b)` function.

View File

@ -12,3 +12,7 @@ If there is a `WHERE` clause, it must contain an expression with the `UInt8` typ
!!! note "Note"
Theres a filtering optimization called [prewhere](../../../sql-reference/statements/select/prewhere.md).
**See Also**
- [EXISTS](../../../sql-reference/operators/exists.md) operator