Příkaz CASE

platí pro:zaškrtněte políčko Ano Databricks Runtime 16.3 a novější

Spustí thenStmtN pro první optN, který se rovná expr, nebo spustí elseStmt, pokud se žádný optN neshoduje s expr. To se nazývá jednoduchý příkaz case.

Systém provede thenStmtN pro první condN vyhodnocující se jako true, nebo elseStmt, pokud se žádný condN nevyhodnotí jako true. To se nazývá vyhledávací příkaz case.

U výrazu CASE, které poskytují výsledné hodnoty, viz výraz CASE

Tento příkaz lze použít pouze ve složeném příkazu.

Skladba

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

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

Parametry

  • výraz

    Libovolný výraz, pro který je definováno porovnání.

  • opt

    Výraz s nejnižším společným typem zahrnujícím expr a všechny ostatní optN.

  • thenStmt

    Příkaz SQL, který se má provést, pokud je truepředchozí podmínka .

  • elseStmt

    Příkaz SQL, který se má provést, pokud není condtrue. To je vše cond jsou false nebo null.

  • cond

    Výraz BOOLEAN.

Podmínky se vyhodnocují v pořadí a pouze první sada příkazů, pro které se opt nebo cond vyhodnotí jako true, bude provedena.

Příklady

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