Beam ZetaSQL 條件表達式
本頁記錄 Beam ZetaSQL 支援的 ZetaSQL 純量函數。
語法 | 輸入資料類型 | 結果資料類型 | 描述 |
---|
CASE expr
WHEN value THEN result
[WHEN ...]
[ELSE else_result]
END | expr 和 value : 任何類型 | result 和 else_result :輸入類型的超類型。 | 將 expr 與每個連續 WHEN 子句的值進行比較,並傳回此比較結果為 true 的第一個結果。其餘的 WHEN 子句和 else_result 不會被評估。如果所有 WHEN 子句的 expr = value 比較結果為 false 或 NULL ,則如果存在 else_result ,則傳回 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 ,並傳回條件為 true 的第一個結果;任何剩餘的 WHEN 子句和 else_result 都不會被評估。如果所有條件都為 false 或 NULL ,則如果存在 else_result ,則傳回 else_result ;如果不存在,則傳回 NULL 。result 和 else_result 表達式必須可以隱式強制轉換為通用的超類型。 |
COALESCE(expr1, ..., exprN) | 任何類型 | 輸入類型的超類型 | 傳回第一個非 Null 表達式的值。其餘的表達式不會被評估。所有輸入表達式都必須可以隱式強制轉換為通用的超類型。 |
IF(cond, true_result, else_result) | cond :BOOL | true_result 和 else_result :任何類型。 | 如果 cond 為 true,則傳回 true_result ,否則傳回 else_result 。如果 cond 為 true,則不評估 else_result 。如果 cond 為 false 或 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 為 true,則傳回 NULL ,否則傳回 expression 。expression 和 expression_to_match 必須可以隱式強制轉換為通用的超類型;相等比較是對強制轉換的值進行的。 |