Presto | 条件表达式
CASE
标准 SQL 的 CASE 表达式有两种形式。
“简单” CASE 表达式的语法如下:
1 | CASE expression |
它会从左到右逐个检查每个值表达式 value
,直到找到与条件表达式 expression
相等的表达式为止。然后返回相应的 result
表达式。如果未找到匹配的表达式,则返回 ELSE
子句中的 result
表达式(如果有的话),否则返回 null。
例如:
1 | SELECT a, |
“搜索”形式的 CASE 表达式允许使用任意布尔条件判断结果表达式。其语法如下:
1 | CASE |
它会从左到右计算每个条件表达式,直到有一个表达式为 True
,然后返回相应的 result
表达式。如果所有条件表达式均为 FALSE
,则返回 ELSE
子句中的 result
表达式(如果有的话),否则返回 null。
例如:
1 | SELECT a, b, |
IF
IF
函数实际上是一个编程语言结构,相当于以下的 CASE
表达式:
1 | CASE |
if(condition, true_value)
如果 condition 为 true,则计算 true_value 表达式并返回计算结果,否则返回 null 且不计算 true_value 表达式。
if(condition, true_value, false_value)
如果 condition 为 true,则计算 true_value 表达式并返回计算结果,否则计算 false_value 表达式并返回计算结果。
COALESCE
coalesce(value1, value2[, …])
从参数列表中返回第一个非空的值。和 CASE
表达式一样,参数只在必要时才会被计算。
NULLIF
nullif(value1, value2)
如果 value1
等于 value2
,则返回 null,否则返回 value1
。
(END)
All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.