Beam ZetaSQL 条件表达式

此页面记录了 Beam ZetaSQL 支持的 ZetaSQL 标量函数。

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