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,則傳回 else_result;如果不存在,則傳回 NULLexprvalue 表達式必須可以隱式強制轉換為通用的超類型;相等比較是對強制轉換的值進行的。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,則傳回 else_result;如果不存在,則傳回 NULLresultelse_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_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 為 true,則傳回 NULL,否則傳回 expressionexpressionexpression_to_match 必須可以隱式強制轉換為通用的超類型;相等比較是對強制轉換的值進行的。