ClickHouse/docs/ru/sql-reference/operators/exists.md

48 lines
1.4 KiB
Markdown
Raw Normal View History

2022-08-26 17:37:11 +00:00
---
slug: /ru/sql-reference/operators/exists
---
2021-11-16 19:15:02 +00:00
# EXISTS {#exists-operator}
2021-11-16 19:20:33 +00:00
Оператор `EXISTS` проверяет, сколько строк содержит результат выполнения подзапроса. Если результат пустой, то оператор возвращает `0`. В остальных случаях оператор возвращает `1`.
2021-11-16 19:15:02 +00:00
`EXISTS` может быть использован в секции [WHERE](../../sql-reference/statements/select/where.md).
:::danger "Предупреждение"
2021-11-16 19:15:02 +00:00
Ссылки на таблицы или столбцы основного запроса не поддерживаются в подзапросе.
**Синтаксис**
```sql
WHERE EXISTS(subquery)
```
**Пример**
2021-11-18 19:44:38 +00:00
Запрос с подзапросом, возвращающим несколько строк:
2021-11-16 19:15:02 +00:00
``` sql
2021-11-18 19:44:38 +00:00
SELECT count() FROM numbers(10) WHERE EXISTS(SELECT number FROM numbers(10) WHERE number > 8);
2021-11-16 19:15:02 +00:00
```
2021-11-18 19:44:38 +00:00
Результат:
2021-11-16 19:15:02 +00:00
``` text
2021-11-18 19:44:38 +00:00
┌─count()─┐
│ 10 │
└─────────┘
```
Запрос с подзапросом, возвращающим пустой результат:
``` sql
SELECT count() FROM numbers(10) WHERE EXISTS(SELECT number FROM numbers(10) WHERE number > 11);
```
Результат:
``` text
┌─count()─┐
│ 0 │
└─────────┘
2021-11-16 19:15:02 +00:00
```