Teilen über


CASE-Anweisung

Gilt für:mit Häkchen markiert ja Databricks Runtime 16.3 und höher

Führt thenStmtN für den ersten optN aus, der expr oder elseStmt entspricht, wenn keine optN mit expr übereinstimmt. Dies wird als einfache Fall-Anweisung bezeichnet.

Führt thenStmtN für die erste condN, die zu trueausgewertet wird, oder elseStmt aus, wenn keine condN zu true ausgewertet wird. Dies wird als gesuchte Fallanweisung bezeichnet.

Fallausdrücke, die Ergebniswerte liefern, finden Sie unter CASE-Ausdruck

Diese Anweisung kann nur in einer zusammengesetzten Anweisung verwendet werden.

Syntax

CASE expr
  { WHEN opt THEN { thenStmt ; } [...] } [...]
  [ ELSE { elseStmt ; } [...] ]
END CASE

CASE
  { WHEN cond THEN { thenStmt ; } [...] } [...]
  [ ELSE { elseStmt ; } [...] ]
END CASE

Die Parameter

  • Expression

    Jeder Ausdruck, für den ein Vergleich definiert ist.

  • opt

    Ein Ausdruck mit einem am wenigsten gebräuchlichen Typ mit expr und allen anderen optN.

  • thenStmt

    Eine SQL-Anweisung, die ausgeführt werden soll, wenn die vorangehende Bedingung lautet true.

  • elseStmt

    Eine SQL-Anweisung, die ausgeführt werden soll, wenn neincond.true Das ist alles condfalse oder null.

  • cond

    Ein BOOLEAN Ausdruck.

Bedingungen werden der Reihe nach ausgewertet, und nur der erste Satz von Anweisungen, für den opt oder cond zu true ausgewertet wird, wird ausgeführt.

Beispiele

-- 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