Beam ZetaSQL 条件表达式
此页面记录了 Beam ZetaSQL 支持的 ZetaSQL 标量函数。
语法 | 输入数据类型 | 结果数据类型 | 描述 |
---|
CASE expr
WHEN value THEN result
[WHEN ...]
[ELSE else_result]
END | expr 和 value : 任何类型 | result 和 else_result : 输入类型的超类型。 | 将 expr 与每个后续 WHEN 子句的值进行比较,并返回第一个比较结果为真的结果。剩余的 WHEN 子句和 else_result 不会被评估。如果对于所有 WHEN 子句,expr = value 比较返回 false 或 NULL ,则返回 else_result (如果存在);如果不存在,则返回 NULL 。expr 和 value 表达式必须隐式可转换为共同的超类型;相等比较是在转换后的值上执行的。result 和 else_result 表达式必须可转换为共同的超类型。 |
CASE
WHEN cond1 THEN result
[WHEN cond2...]
[ELSE else_result]
END | cond : BOOL | result 和 else_result : 输入类型的超类型。 | 评估每个后续 WHEN 子句的条件 cond ,并返回第一个条件为真的结果;任何剩余的 WHEN 子句和 else_result 不会被评估。如果所有条件都为 false 或 NULL ,则返回 else_result (如果存在);如果不存在,则返回 NULL 。result 和 else_result 表达式必须隐式可转换为共同的超类型。 |
COALESCE(expr1, ..., exprN) | 任何类型 | 输入类型的超类型 | 返回第一个非空表达式的值。剩余的表达式不会被评估。所有输入表达式都必须隐式可转换为共同的超类型。 |
IF(cond, true_result, else_result) | cond : BOOL | true_result 和 else_result : 任何类型。 | 如果 cond 为真,则返回 true_result ,否则返回 else_result 。如果 cond 为真,则不会评估 else_result 。如果 cond 为假或 NULL ,则不会评估 true_result 。true_result 和 else_result 必须可转换为共同的超类型。 |
IFNULL(expr, null_result) | 任何类型 | 任何类型或输入类型的超类型。 | 如果 expr 为 NULL ,则返回 null_result 。否则,返回 expr 。如果 expr 不为 NULL ,则不会评估 null_result 。expr 和 null_result 必须隐式可转换为共同的超类型。COALESCE(expr, null_result) 的同义词。 |
NULLIF(expression, expression_to_match) | 任何类型 T 或 T 的子类型 | 任何类型 T 或 T 的子类型 | 如果 expression = expression_to_match 为真,则返回 NULL ,否则返回 expression 。expression 和 expression_to_match 必须隐式可转换为共同的超类型;相等比较是在转换后的值上执行的。 |