case
表达式
适用于: Databricks SQL Databricks Runtime
返回等于 expr
的第一个 optN
的 resN
;如果没有任何匹配项,则返回 def
。
返回计算结果为 true 的第一个 condN
的 resN
;如果找不到任何匹配项,则返回 def
。
语法
CASE expr {WHEN opt1 THEN res1} [...] [ELSE def] END
CASE {WHEN cond1 THEN res1} [...] [ELSE def] END
参数
expr
:为其定义了比较的任何表达式。optN
:一个具有expr
和所有其他optN
的最不常见类型的表达式。resN
:具有resN
和def
的最不常见类型的任何表达式。def
:一个具有所有resN
的最不常见类型的可选表达式。condN
:一个 BOOLEAN 表达式。
返回
结果类型与 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