CASE (simple)

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

Veja também: SE.

Exemplos de utilização

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 devolve 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 tem de ter uma cláusula THEN correspondente, que especifica os resultados a devolver se essa condição for verdadeira. Se existirem várias cláusulas WHEN, a declaração CASE devolve 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 predefinido para a declaração CASE. Esta cláusula é devolvida se nenhuma das cláusulas WHEN for verdadeira. Se uma declaração CASE não tiver uma cláusula ELSE e nenhuma das cláusulas WHEN for verdadeira, a declaração CASE devolve NULL.

Como funciona o CASE simples

Uma declaração CASE simples é composta pelos seguintes elementos:

  • A palavra-chave CASE, seguida de uma expressão de entrada.
  • WHEN : o valor com o qual comparar o input_expression : se o valor for igual ao input_expression, esta cláusula é verdadeira. Pode ter várias cláusulas WHEN numa única declaração CASE.
  • THEN : o resultado a devolver se a condição da cláusula WHEN for verdadeira. Tem de ter uma cláusula THEN para cada cláusula WHEN na sua declaração CASE.
  • ELSE : opcional. Se nenhuma das condições da cláusula WHEN for verdadeira, CASE devolve o valor na cláusula ELSE ou NULL se não for especificada nenhuma cláusula ELSE.
  • A palavra-chave END.

CASE avalia cada cláusula WHEN sucessiva e devolve o primeiro resultado em que a condição é verdadeira. Quaisquer cláusulas WHEN restantes e o resultado ELSE não são avaliados. Se todas as condições WHEN forem falsas ou NULL, CASE devolve o resultado ELSE ou, se não estiver presente nenhuma cláusula ELSE, devolve NULL.

Exemplo

Forneça links personalizados para os 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