Partilhar via


Declaração do CASO

Aplica-se a:marca de seleção sim Databricks Runtime 16.3 e superior

Executa thenStmtN para o primeiro optN que seja igual a expr ou elseStmt se nenhum optN corresponder a expr. Isso é chamado de declaração de caso simples.

Executa thenStmtN pela primeira vez que condN avalia para true, ou elseStmt se nenhuma condN avalia para true. Isso é chamado de declaração de caso pesquisada .

Para expressões de caso que geram resultados, consulte a expressão CASE

Esta declaração só pode ser usada dentro de uma declaração composta .

Sintaxe

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

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

Parâmetros

  • EXPR

    Qualquer expressão para a qual seja definida uma comparação.

  • opt

    Uma expressão com um tipo menos comum com expr e todos os outros optN.

  • thenStmt

    Uma instrução SQL a ser executada se a condição anterior for true.

  • elseStmt

    Uma instrução SQL a ser executada se não cond for true. Isso é tudo cond são false ou null.

  • cond

    Uma expressão BOOLEAN.

As condições são avaliadas por ordem, e apenas o primeiro conjunto de instruções, para o qual opt ou cond é avaliado como true, será executado.

Exemplos

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