mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-19 06:01:57 +00:00
2d2bc052e1
* Typo fix. * Links fix. * Fixed links in docs. * More fixes. * docs/en: cleaning some files * docs/en: cleaning data_types * docs/en: cleaning database_engines * docs/en: cleaning development * docs/en: cleaning getting_started * docs/en: cleaning interfaces * docs/en: cleaning operations * docs/en: cleaning query_lamguage * docs/en: cleaning en * docs/ru: cleaning data_types * docs/ru: cleaning index * docs/ru: cleaning database_engines * docs/ru: cleaning development * docs/ru: cleaning general * docs/ru: cleaning getting_started * docs/ru: cleaning interfaces * docs/ru: cleaning operations * docs/ru: cleaning query_language * docs: cleaning interfaces/http * Update docs/en/data_types/array.md decorated ``` Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/getting_started/example_datasets/nyc_taxi.md fixed typo Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/getting_started/example_datasets/ontime.md fixed typo Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/interfaces/formats.md fixed error Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/table_engines/custom_partitioning_key.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/utils/clickhouse-local.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/dicts/external_dicts_dict_sources.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/utils/clickhouse-local.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/json_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/json_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/other_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/other_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/query_language/functions/date_time_functions.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * Update docs/en/operations/table_engines/jdbc.md Co-Authored-By: BayoNet <da-daos@yandex.ru> * docs: fixed error * docs: fixed error
51 lines
1.9 KiB
Markdown
51 lines
1.9 KiB
Markdown
# Условные функции
|
||
|
||
## if(cond, then, else), оператор cond ? then : else
|
||
|
||
Возвращает `then`, если `cond != 0` или `else`, если `cond = 0`.
|
||
`cond` должно иметь тип `UInt8`, а `then` и `else` должны иметь тип, для которого есть наименьший общий тип.
|
||
|
||
`then` и `else` могут быть `NULL`
|
||
|
||
## multiIf
|
||
|
||
Позволяет более компактно записать оператор [CASE](../operators.md#operator_case) в запросе.
|
||
|
||
```
|
||
multiIf(cond_1, then_1, cond_2, then_2...else)
|
||
```
|
||
|
||
**Параметры**
|
||
|
||
- `cond_N` — Условие, при выполнении которого функция вернёт `then_N`.
|
||
- `then_N` — Результат функции при выполнении.
|
||
- `else` — Результат функции, если ни одно из условий не выполнено.
|
||
|
||
Функция принимает `2N+1` параметров.
|
||
|
||
**Возвращаемые значения**
|
||
|
||
Функция возвращает одно из значений `then_N` или `else`, в зависимости от условий `cond_N`.
|
||
|
||
**Пример**
|
||
|
||
Рассмотрим таблицу
|
||
|
||
```text
|
||
┌─x─┬────y─┐
|
||
│ 1 │ ᴺᵁᴸᴸ │
|
||
│ 2 │ 3 │
|
||
└───┴──────┘
|
||
```
|
||
|
||
Выполним запрос `SELECT multiIf(isNull(y), x, y < 3, y, NULL) FROM t_null`. Результат:
|
||
|
||
```text
|
||
┌─multiIf(isNull(y), x, less(y, 3), y, NULL)─┐
|
||
│ 1 │
|
||
│ ᴺᵁᴸᴸ │
|
||
└────────────────────────────────────────────┘
|
||
```
|
||
|
||
[Оригинальная статья](https://clickhouse.yandex/docs/ru/query_language/functions/conditional_functions/) <!--hide-->
|