适用于:
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