Выражение case

Область применения:check marked yes Databricks SQL check marked yes 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