条件函数
本页按功能分类,全面概述了 TiDB Cloud Lake 中的条件函数,便于参考。
基本条件函数
| 函数 | 描述 | 示例 |
|---|
| IF / IFF | 根据条件返回一个值 | IF(1 > 0, 'yes', 'no') → 'yes' |
| CASE | 对条件进行求值并返回匹配的结果 | CASE WHEN 1 > 0 THEN 'yes' ELSE 'no' END → 'yes' |
| DECODE | 将表达式与搜索值进行比较并返回结果 | DECODE(2, 1, 'one', 2, 'two', 'other') → 'two' |
| COALESCE | 返回第一个非 NULL 表达式 | COALESCE(NULL, 'hello', 'world') → 'hello' |
| NULLIF | 如果两个表达式相等则返回 NULL,否则返回第一个表达式 | NULLIF(5, 5) → NULL |
| IFNULL | 如果第一个表达式不是 NULL,则返回该表达式,否则返回第二个表达式 | IFNULL(NULL, 'default') → 'default' |
| NVL | 返回第一个非 NULL 表达式 | NVL(NULL, 'default') → 'default' |
| NVL2 | 如果 expr1 不是 NULL,则返回 expr2,否则返回 expr3 | NVL2('value', 'not null', 'is null') → 'not null' |
比较函数
| 函数 | 描述 | 示例 |
|---|
| GREATEST | 返回列表中的最大值 | GREATEST(1, 5, 3) → 5 |
| LEAST | 返回列表中的最小值 | LEAST(1, 5, 3) → 1 |
| GREATEST_IGNORE_NULLS | 返回最大的非 NULL 值 | GREATEST_IGNORE_NULLS(NULL, 5, 3) → 5 |
| LEAST_IGNORE_NULLS | 返回最小的非 NULL 值 | LEAST_IGNORE_NULLS(NULL, 5, 3) → 3 |
| BETWEEN | 检查某个值是否位于指定范围内 | 5 BETWEEN 1 AND 10 → true |
| IN | 检查某个值是否与列表中的任一值匹配 | 5 IN (1, 5, 10) → true |
NULL 和错误处理函数
| 函数 | 描述 | 示例 |
|---|
| IS_NULL | 检查某个值是否为 NULL | IS_NULL(NULL) → true |
| IS_NOT_NULL | 检查某个值是否不为 NULL | IS_NOT_NULL('value') → true |
| IS_DISTINCT_FROM | 检查两个值是否不同,并将 NULL 视为相等 | NULL IS DISTINCT FROM 0 → true |
| IS_ERROR | 检查表达式求值是否产生错误 | IS_ERROR(1/0) → true |
| IS_NOT_ERROR | 检查表达式求值是否未产生错误 | IS_NOT_ERROR(1/1) → true |
| ERROR_OR | 如果第一个表达式不是错误,则返回该表达式,否则返回第二个表达式 | ERROR_OR(1/0, 0) → 0 |