case
運算式
適用於: Databricks SQL Databricks Runtime
如果前 optN
個都等於 expr
,則傳回 resN
;如果都不符合,則傳回 def
。
resN
傳回第一個condN
評估為 true,如果def
找不到則傳回 。
語法
CASE expr {WHEN opt1 THEN res1} [...] [ELSE def] END
CASE {WHEN cond1 THEN res1} [...] [ELSE def] END
引數
expr
:定義比較的任何表達式。optN
:具有 與 和其他optN
所有 最不通用類型的expr
表達式。resN
:具有所有其他 和def
最不通用型別的任何resN
運算式。def
:具有所有resN
最不通用類型的選擇性表達式。condN
:布爾表達式。
傳回
結果型別符合和 最不常見的型別resN
def
。
如果 def
省略預設值為 NULL。
條件會依序評估,且只會 resN
執行會產生結果的 或 def
。
範例
> SELECT CASE WHEN 1 > 0 THEN 1 WHEN 2 > 0 THEN 2.0 ELSE 1.2 END;
1.0
> SELECT CASE WHEN 1 < 0 THEN 1 WHEN 2 > 0 THEN 2.0 ELSE 1.2 END;
2.0
> SELECT CASE WHEN 1 < 0 THEN 1 WHEN 2 < 0 THEN 2.0 END;
NULL
> SELECT CASE 3 WHEN 1 THEN 'A' WHEN 2 THEN 'B' WHEN 3 THEN 'C' END;
C