ClickHouse/docs/zh/query_language/functions/conditional_functions.md
2019-06-07 13:40:49 +03:00

51 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 条件函数
## if(cond, then, else), cond ? operator then : else
如果`cond = 0`则返回`then`,如果`cond = 0`则返回`else`。
`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`。
**示例**
存在如下一张表
```
┌─x─┬────y─┐
│ 1 │ ᴺᵁᴸᴸ │
│ 2 │ 3 │
└───┴──────┘
```
执行查询 `SELECT multiIf(isNull(y) x, y < 3, y, NULL) FROM t_null`。结果:
```
┌─multiIf(isNull(y), x, less(y, 3), y, NULL)─┐
│ 1 │
│ ᴺᵁᴸᴸ │
└────────────────────────────────────────────┘
```
[来源文章](https://clickhouse.yandex/docs/en/query_language/functions/conditional_functions/) <!--hide-->