CASE (simples)

A expressão CASE simples retorna um resultado com base no valor de uma única expressão de entrada ou um resultado padrão se nenhum dos valores de comparação corresponder.

Consulte também: IF.

Exemplo de uso

Substitua os códigos de pagamento por nomes intuitivos:

    CASE Payment Type
        WHEN "CC" THEN "Credit Card"
        WHEN "DC" THEN "Debit Card"
        WHEN "GC" THEN "Gift Card"
        WHEN "CA" THEN "Cash"
        ELSE "Other"
    END

Sintaxe

    CASE input_expression
        WHEN expression_to_match THEN result
        [WHEN expression_to_match THEN result]
        [...]
        [ELSE else_result]
    END

Parâmetros

  • input_expression: qualquer campo ou expressão válida.
  • [expression_to_match: qualquer campo ou expressão válida. A cláusula WHEN compara input_expression com input_expression e retorna verdadeiro se os dois forem iguais ou falso se não forem.]{#when-conditions}
  • result : qualquer campo ou expressão válida. Cada cláusula WHEN precisa ter uma cláusula THEN correspondente, que especifica os resultados a serem retornados se essa condição for verdadeira. Se houver várias cláusulas WHEN, a instrução CASE vai retornar o resultado da primeira cláusula verdadeira.
  • else_result (opcional): qualquer campo ou expressão válida. A cláusula ELSE else_result especifica um resultado padrão para a instrução CASE. Essa cláusula será retornada se nenhuma das cláusulas WHEN for verdadeira. Se uma instrução CASE não tiver uma cláusula ELSE e nenhuma das cláusulas WHEN for verdadeira, a instrução CASE vai retornar NULL.

Como a CASE simples funciona

Uma instrução CASE simples consiste nos seguintes elementos:

  • A palavra-chave CASE, seguida de uma expressão de entrada.
  • WHEN: o valor que será usado para comparar o input_expression. Se o valor for igual ao input_expression, essa cláusula será verdadeira. É possível ter várias cláusulas WHEN em uma única instrução CASE.
  • THEN : o resultado que será retornado se a condição da cláusula WHEN for verdadeira. É preciso ter uma cláusula THEN para cada cláusula WHEN na instrução CASE.
  • ELSE : opcional. Se nenhuma das condições da cláusula WHEN for verdadeira, CASE vai retornar o valor na cláusula ELSE ou NULL se nenhuma cláusula ELSE for especificada.
  • A palavra-chave END.

CASE avalia cada cláusula WHEN sucessiva e retorna o primeiro resultado em que a condição é verdadeira. As cláusulas WHEN restantes e o resultado ELSE não são avaliados. Se todas as condições WHEN forem falsas ou NULL, CASE vai retornar o resultado ELSE. Caso não haja uma cláusula ELSE, NULL será retornado.

Exemplo

Forneça links personalizados para seus clientes Premium:

    CASE Premium Status
        WHEN "Platinum" THEN CONCAT(Site URL, "platinum_welcome.html")
        WHEN "Gold" THEN CONCAT(Site URL, "gold_welcome.html")
        WHEN "Silver" THEN CONCAT(Site URL, "silver_welcome.html")
        ELSE CONCAT(Site URL, "welcome.html")
    END