适用于: 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 语句(如果否
cond
true
)。 所有的cond
都是false
或null
。cond
BOOLEAN
表达式。
条件按顺序进行评估,并且只会执行使得 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