CASE
說明
CASE
是一個列函數,根據一或多個輸入條件評估資料集中的每一列,並在符合輸入條件時輸出指定的結果。語法
CASE
WHEN
input_condition
[AND
|OR
input_condition
]THEN
output_expression
[...] [ELSE
other_output_expression
] END
傳回值
每列傳回一個與輸出運算式相同類型的值。所有輸出運算式都必須傳回相同的欄位類型。
如果有多個輸出運算式傳回不同的欄位類型,則您需要將整個運算式放在後面
CASE
任一欄位類型轉換函數中的運算式,例如 TO_INT
,將所有輸出值顯式轉換為特定欄位類型。輸入參數
- WHENinput_condition
- 必填。該WHEN關鍵字用於指定一或多個布林運算式 (請參閱「支援的條件運算子」)。如果輸入值符合條件,則會套用輸出運算式。輸入條件可在其運算式中包含其他列函數,但不能包含匯總函數或量值運算式。您可以使用AND或OR關鍵字,以組合多個輸入條件。
- THENoutput_expression
- 必填。該THEN關鍵字用於在符合指定條件時指定輸出運算式。輸出運算式可以在其運算式中包含其他列函數,但不能包含匯總函數或量值運算式。
- ELSEother_output_expression
- 選用。該ELSE關鍵字可用於指定不符合指定條件時要使用的其他輸出運算式。如果ELSE未提供 expression,ELSE NULL是預設值。
- END
- 必填。表示結束CASE函數處理
範例
將
年齡
欄中的值轉換為範圍型分組 (分箱)︰CASE WHEN [age] <= 25 THEN "0-25" WHEN [age] <= 50 THEN "26-50" ELSE "over 50"
END
將
性別
欄中的值從一個字串轉換為另一個字串︰CASE WHEN [gender] = "M" THEN "Male" WHEN [gender] = "F" THEN
"Female" ELSE "Unknown" END
車輛
欄包含下列值︰皮卡、公共汽車、汽車、小型摩托、旅行車、單車、三輪車和電單車。以下範例會將 車輛
欄中的多個值轉換為單一值︰CASE WHEN [vehicle] in ("bike","scooter","motorcycle") THEN "two-wheelers" ELSE
"other" END