case
wyrażenie
Dotyczy: Databricks SQL Databricks Runtime
Zwraca resN
wartość dla pierwszego optN
, który jest równy expr
lub def
jeśli żaden z nich nie pasuje.
Zwraca resN
wartość dla pierwszej condN
oceny wartości true lub def
jeśli nie zostanie znaleziona żadna.
Składnia
CASE expr {WHEN opt1 THEN res1} [...] [ELSE def] END
CASE {WHEN cond1 THEN res1} [...] [ELSE def] END
Argumenty
expr
: dowolne wyrażenie, dla którego zdefiniowano porównanie.optN
: wyrażenie, które ma najmniej wspólny typ iexpr
wszystkie inneoptN
.resN
: dowolne wyrażenie, które ma najmniej wspólny typ ze wszystkimi innymiresN
elementami idef
.def
: opcjonalne wyrażenie, które ma najmniej wspólny typ ze wszystkimiresN
elementami .condN
: wyrażenie logiczne.
Zwraca
Typ wyniku jest zgodny z najmniej typowym typem i def
resN
.
Jeśli def
zostanie pominięty, wartość domyślna to NULL.
Warunki są oceniane w kolejności i tylko te resN
, def
które dają wynik jest wykonywany.
Przykłady
> 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