Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
применимо: Databricks Runtime 16.3 и более поздние версии
Важный
Эта функция доступна в общедоступной предварительной версии.
Выполняет thenStmtN
для первого optN
, равного expr
или elseStmt
, если optN
не соответствует expr
.
Это называется оператором простого регистра.
Выполняет thenStmtN
для первого condN
, который вычисляется как true
, или же elseStmt
, если ни один condN
не вычисляется как true
.
Это называется оператором выбора.
Для выражений CASE, которые возвращают значения результатов, см. CASE expression
Эта инструкция может использоваться только в составной инструкции.
Синтаксис
CASE expr
{ WHEN opt THEN { thenStmt ; } [...] } [...]
[ ELSE { elseStmt ; } [...] ]
END CASE
CASE
{ WHEN cond THEN { thenStmt ; } [...] } [...]
[ ELSE { elseStmt ; } [...] ]
END CASE
Параметры
- expr: любое выражение, для которого определено сравнение.
-
opt
: выражение с наименее распространенным типом сexpr
и всеми остальнымиoptN
. -
thenStmt
: инструкция SQL для выполнения, если предыдущее условиеtrue
. -
elseStmt
: инструкция SQL для выполнения, если условие неtrue
. -
cond
: выражениеBOOLEAN
.
Условия проверяются в определённом порядке, и будет выполнен только первый набор stmt
, для которого opt
или cond
будут оценены как истина.
Примеры
-- 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