Beam ZetaSQL 条件式

このページでは、Beam ZetaSQLでサポートされているZetaSQLスカラー関数について説明します。

構文入力データ型結果データ型説明
CASE expr
  WHEN value THEN result
  [WHEN ...]
  [ELSE else_result]
  END
exprvalue:任意の型resultelse_result:入力型のスーパータイプ。exprを後続の各WHEN句の値と比較し、この比較がtrueを返す最初の結果を返します。残りのWHEN句とelse_resultは評価されません。すべてのWHEN句でexpr = valueの比較がfalseまたはNULLを返す場合、else_resultが存在する場合はそれを返し、存在しない場合はNULLを返します。exprvalue式は、暗黙的に共通のスーパータイプに強制型変換できる必要があります。等価比較は、強制型変換された値に対して行われます。resultelse_resultの式は、共通のスーパータイプに強制型変換できる必要があります。
CASE
  WHEN cond1 THEN result
  [WHEN cond2...]
  [ELSE else_result]
  END
cond: BOOLresultelse_result:入力型のスーパータイプ。後続の各WHEN句の条件condを評価し、条件がtrueになる最初の結果を返します。残りのWHEN句とelse_resultは評価されません。すべての条件がfalseまたはNULLの場合、else_resultが存在する場合はそれを返し、存在しない場合はNULLを返します。resultelse_resultの式は、暗黙的に共通のスーパータイプに強制型変換できる必要があります。
COALESCE(expr1, ..., exprN)任意の型入力型のスーパータイプ最初のNULLでない式の値を返します。残りの式は評価されません。すべての入力式は、暗黙的に共通のスーパータイプに強制型変換できる必要があります。
IF(cond, true_result, else_result)cond: BOOLtrue_resultelse_result:任意の型。condがtrueの場合、true_resultを返し、それ以外の場合はelse_resultを返します。condがtrueの場合、else_resultは評価されません。condがfalseまたはNULLの場合、true_resultは評価されません。true_resultelse_resultは、共通のスーパータイプに強制型変換できる必要があります。
IFNULL(expr, null_result)任意の型任意の型または入力型のスーパータイプ。exprNULLの場合、null_resultを返します。それ以外の場合は、exprを返します。exprNULLでない場合、null_resultは評価されません。exprnull_resultは、暗黙的に共通のスーパータイプに強制型変換できる必要があります。COALESCE(expr, null_result)の同義語。
NULLIF(expression, expression_to_match)任意の型TまたはTのサブタイプ任意の型TまたはTのサブタイプexpression = expression_to_matchがtrueの場合、NULLを返し、それ以外の場合はexpressionを返します。expressionexpression_to_matchは、暗黙的に共通のスーパータイプに強制型変換できる必要があります。等価比較は、強制型変換された値に対して行われます。