El CASE
simple muestra un resultado basado en el valor de una sola expresión de entrada o un resultado predeterminado si ninguno de los valores de comparación coincide.
Consulta también: IF.
Ejemplo de uso
Reemplaza los códigos de pago por nombres 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
Sintaxis
CASE input_expression WHEN expression_to_match THEN result [WHEN expression_to_match THEN result] [...] [ELSE else_result] END
Parámetros
input_expression
: Cualquier campo o expresión válida.- [
expression_to_match
: Cualquier campo o expresión válida. La cláusulaWHEN
comparainput_expression
coninput_expression
y muestra verdadero si los dos son iguales o falso si no lo son.]{#when-conditions} result
: Cualquier campo o expresión válida. Cada cláusulaWHEN
debe tener una cláusulaTHEN
coincidente, que especifique los resultados que se mostrarán si esa condición es verdadera. Si hay varias cláusulasWHEN
, la sentenciaCASE
muestra el resultado de la primera cláusula verdadera.else_result
(opcional): Cualquier campo o expresión válidos. La cláusula else_result deELSE
especifica un resultado predeterminado para la sentenciaCASE
. Esta cláusula se muestra si ninguna de las cláusulasWHEN
es verdadera. Si una sentenciaCASE
no tiene una cláusulaELSE
y ninguna de las cláusulasWHEN
es verdadera, la sentenciaCASE
muestraNULL
.
Cómo funciona CASE
Una sentencia CASE
simple consta de los siguientes elementos:
- La palabra clave
CASE
, seguida de una expresión de entrada WHEN
: Es el valor con el que se comparainput_expression
. Si el valor es igual ainput_expression
, esta cláusula es verdadera. Puedes tener varias cláusulasWHEN
en una sola sentenciaCASE
.THEN
: Es el resultado que se mostrará si la condición de la cláusulaWHEN
es verdadera. Debes tener una cláusulaTHEN
para cada cláusulaWHEN
en tu sentenciaCASE
.ELSE
: Opcional. Si ninguna de las condiciones de la cláusulaWHEN
es verdadera,CASE
muestra el valor de la cláusulaELSE
oNULL
si no se especifica una cláusulaELSE
.- La palabra clave
END
.
CASE
evalúa cada cláusula WHEN
sucesiva y muestra el primer resultado en el que la condición sea verdadera. Las cláusulas WHEN
restantes y el resultado ELSE
no se evalúan. Si todas las condiciones WHEN
son falsas o NULL
, CASE
muestra el resultado ELSE
o, si no hay una cláusula ELSE
, muestra NULL
.
Ejemplo
Proporciona vínculos personalizados para tus 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