Beam ZetaSQL conditional expressions

This page documents the ZetaSQL scalar functions supported by Beam ZetaSQL.

SyntaxInput Data TypesResult Data TypeDescription
CASE expr
  WHEN value THEN result
  [WHEN ...]
  [ELSE else_result]
  END
expr and value: Any typeresult and else_result: Supertype of input types.Compares expr to value of each successive WHEN clause and returns the first result where this comparison returns true. The remaining WHEN clauses and else_result are not evaluated. If the expr = value comparison returns false or NULL for all WHEN clauses, returns else_result if present; if not present, returns NULL. expr and value expressions must be implicitly coercible to a common supertype; equality comparisons are done on coerced values. result and else_result expressions must be coercible to a common supertype.
CASE
  WHEN cond1 THEN result
  [WHEN cond2...]
  [ELSE else_result]
  END
cond: BOOLresult and else_result: Supertype of input types.Evaluates condition cond of each successive WHEN clause and returns the first result where the condition is true; any remaining WHEN clauses and else_result are not evaluated. If all conditions are false or NULL, returns else_result if present; if not present, returns NULL. result and else_result expressions must be implicitly coercible to a common supertype.
COALESCE(expr1, ..., exprN)Any typeSupertype of input typesReturns the value of the first non-null expression. The remaining expressions are not evaluated. All input expressions must be implicitly coercible to a common supertype.
IF(cond, true_result, else_result)cond: BOOLtrue_result and else_result: Any type.If cond is true, returns true_result, else returns else_result. else_result is not evaluated if cond is true. true_result is not evaluated if cond is false or NULL. true_result and else_result must be coercible to a common supertype.
IFNULL(expr, null_result)Any typeAny type or supertype of input types.If expr is NULL, return null_result. Otherwise, return expr. If expr is not NULL, null_result is not evaluated. expr and null_result must be implicitly coercible to a common supertype. Synonym for COALESCE(expr, null_result).
NULLIF(expression, expression_to_match)Any type T or subtype of TAny type T or subtype of TReturns NULL if expression = expression_to_match is true, otherwise returns expression. expression and expression_to_match must be implicitly coercible to a common supertype; equality comparison is done on coerced values.