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áusulaWHEN
comparainput_expression
cominput_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áusulaWHEN
tem de ter uma cláusulaTHEN
correspondente, que especifica os resultados a devolver se essa condição for verdadeira. Se existirem várias cláusulasWHEN
, a declaraçãoCASE
devolve 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 predefinido para a declaraçãoCASE
. Esta cláusula é devolvida se nenhuma das cláusulasWHEN
for verdadeira. Se uma declaraçãoCASE
não tiver uma cláusulaELSE
e nenhuma das cláusulasWHEN
for verdadeira, a declaraçãoCASE
devolveNULL
.
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 oinput_expression
: se o valor for igual aoinput_expression
, esta cláusula é verdadeira. Pode ter várias cláusulasWHEN
numa única declaraçãoCASE
.THEN
: o resultado a devolver se a condição da cláusulaWHEN
for verdadeira. Tem de ter uma cláusulaTHEN
para cada cláusulaWHEN
na sua declaraçãoCASE
.ELSE
: opcional. Se nenhuma das condições da cláusulaWHEN
for verdadeira,CASE
devolve o valor na cláusulaELSE
ouNULL
se não for especificada nenhuma cláusulaELSE
.- 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