A expressão CASE
simples retornará 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.
Observação: existem duas formas da instrução CASE
: CASE
pesquisada e CASE
simples. As instruções CASE
pesquisadas permitem que você use uma lógica mais sofisticada, enquanto as instruções CASE
simples são mais fáceis de criar.
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 expressão ou campo válido.expression_to_match
: qualquer expressão ou campo válido. A cláusulaWHEN
comparainput_expression
ainput_expression
e retorna verdadeiro se os dois forem iguais, ou falso se não forem.result
: qualquer expressão ou campo válido. Cada cláusulaWHEN
precisa ter uma cláusulaTHEN
correspondente, que especifica os resultados a serem retornados se essa condição for verdadeira. Se houver várias cláusulasWHEN
, a instruçãoCASE
retornará o resultado da primeira cláusula verdadeira.else_result
(opcional): qualquer campo ou expressão válida. A cláusulaELSE
else_result especifica um resultado padrão para a instruçãoCASE
. Essa cláusula será retornada se nenhuma das cláusulasWHEN
for verdadeira. Caso uma instruçãoCASE
não tenha uma instruçãoELSE
e nenhuma das cláusulasWHEN
seja verdadeira, a instruçãoCASE
retornaráNULL
.
Observação: todas as cláusulas THEN
em uma instrução CASE
precisam retornar o mesmo tipo de resultado. Por exemplo, se a primeira cláusula THEN
retornar o tipo de dados Texto, as outras cláusulas THEN
também precisarão retornar esse tipo de dados.
Como a expressão 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 oinput_expression
. Se o valor for igual aoinput_expression
, essa cláusula será verdadeira. É possível ter várias cláusulasWHEN
em uma única instruçãoCASE
.THEN
: o resultado que será retornado se a condição da cláusulaWHEN
for verdadeira. É preciso ter uma cláusulaTHEN
para cada cláusulaWHEN
na instruçãoCASE
.ELSE
: opcional. Se nenhuma das condições da cláusulaWHEN
for verdadeira,CASE
retornará o valor na cláusulaELSE
ouNULL
se nenhuma cláusulaELSE
for especificada.- A palavra-chave
END
.
CASE
avalia cada cláusula WHEN
sucessiva e retorna o primeiro resultado quando 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
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