Выражение case
Область применения: Databricks SQL Databricks Runtime
Возвращает resN
для первого optN
, равного expr
, или def
, если соответствия обнаружены не будут.
Возвращает resN
для первого condN
, который имеет значение true, или 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