Dela via


case uttryck

Gäller för: markerad ja Databricks SQL markerad ja Databricks Runtime

Returnerar resN för den första optN som är expr lika med eller def om ingen matchar.

Returnerar resN för den första condN utvärderingen till true eller def om ingen hittades.

Syntax

CASE expr {WHEN opt1 THEN res1} [...] [ELSE def] END
CASE {WHEN cond1 THEN res1} [...] [ELSE def] END

Argument

  • expr: Alla uttryck som jämförelse definieras för.
  • optN: Ett uttryck som har en minst vanlig typ med expr och alla andra optN.
  • resN: Alla uttryck som har en minst vanlig typ med alla andra resN och def.
  • def: Ett valfritt uttryck som har en minst vanlig typ med alla resN.
  • condN: Ett BOOLESKT uttryck.

Returer

Resultattypen matchar den minst vanliga typen av resN och def.

Om def utelämnas är standardvärdet NULL. Villkor utvärderas i ordning och endast eller resN def som ger resultatet körs.

Exempel

> 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