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áusulaWHEN
comparainput_expression
cominput_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á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
vai 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. Se uma instruçãoCASE
não tiver uma cláusulaELSE
e nenhuma das cláusulasWHEN
for verdadeira, a instruçãoCASE
vai retornarNULL
.
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 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
vai 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 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