适用于:
Databricks Runtime 16.3 及更高版本
重要
此功能目前以公共预览版提供。
对于第一个等于 thenStmtN 的 optN 执行 expr,如果没有 elseStmt 与 optN 匹配,则执行 expr。
这被称为简单情况语句。
对第一个计算结果为 thenStmtN 的 condN 执行 true,如果没有 elseStmt 计算结果为 condN,则执行 true。
这称为 搜索事例语句。
有关生成结果值的事例表达式,请参阅 CASE 表达式
此语句只能在 复合语句中使用。
语法
CASE expr
{ WHEN opt THEN { thenStmt ; } [...] } [...]
[ ELSE { elseStmt ; } [...] ]
END CASE
CASE
{ WHEN cond THEN { thenStmt ; } [...] } [...]
[ ELSE { elseStmt ; } [...] ]
END CASE
参数
expr
任何已定义比较的表达式。
opt具有与
expr和所有其他optN具有最小公类型的表达式。thenStmt如果上述条件为
true,则执行 SQL 语句。elseStmt要执行的 SQL 语句(如果否
condtrue)。 所有的cond都是false或null。condBOOLEAN表达式。
条件按顺序进行评估,并且只会执行使得 opt 或 cond 评估为 true 的第一组语句。
例子
-- a simple case statement
> BEGIN
DECLARE choice INT DEFAULT 3;
DECLARE result STRING;
CASE choice
WHEN 1 THEN
VALUES ('one fish');
WHEN 2 THEN
VALUES ('two fish');
WHEN 3 THEN
VALUES ('red fish');
WHEN 4 THEN
VALUES ('blue fish');
ELSE
VALUES ('no fish');
END CASE;
END;
red fish
-- A searched case statement
> BEGIN
DECLARE choice DOUBLE DEFAULT 3.9;
DECLARE result STRING;
CASE
WHEN choice < 2 THEN
VALUES ('one fish');
WHEN choice < 3 THEN
VALUES ('two fish');
WHEN choice < 4 THEN
VALUES ('red fish');
WHEN choice < 5 OR choice IS NULL THEN
VALUES ('blue fish');
ELSE
VALUES ('no fish');
END CASE;
END;
red fish