La expresión CASE simple devuelve un resultado en función del valor de una sola expresión de entrada. Puedes definir un resultado predeterminado si no hay ningún valor que coincida con la expresión de entrada.
Secciones de este artículo:Ejemplo
Para proporcionar enlaces personalizados a sus 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
Cómo funciona la expresión CASE simple
Una expresión CASE simple se compone de los siguientes elementos:
- La palabra clave CASE, seguida de una expresión de entrada.
- WHEN: el valor con el que se compara la expresión de entrada. Si es igual a la expresión de entrada, esta cláusula es true. Puedes incluir varias cláusulas WHEN en una sola expresión CASE.
- THEN: el resultado que devuelve la expresión si se cumple la condición de la cláusula WHEN. La expresión CASE debe contener una cláusula THEN por cada cláusula WHEN.
- ELSE: esta cláusula es opcional. Si no se cumple ninguna de las condiciones de las cláusulas WHEN, CASE devuelve el valor de la cláusula ELSE, o
NULL
si no se ha especificado ninguna. - La palabra clave END.
CASE evalúa cada cláusula WHEN sucesiva y devuelve el primer resultado donde se cumple la condición. Las cláusulas WHEN restantes y el resultado ELSE no se evalúan. Si todas las condiciones WHEN son false o NULL, CASE devuelve el resultado ELSE o, si no hay ninguna cláusula ELSE, devuelve NULL.
Sintaxis
CASE input_expression
WHEN expression_to_match THEN result
[WHEN expression_to_match THEN result]
[...]
[ELSE else_result]
END
Parámetros
input_expression
Expresión que se evalúa. Puedes usar cualquier expresión válida como input_expression
.
WHEN expression_to_match
La cláusula WHEN compara expression_to_match
con input_expression
y devuelve el valor true, si son iguales, y false, si no lo son. Puedes usar cualquier expresión válida en la cláusula WHEN.
THEN result
Cada condición WHEN debe corresponderse con una cláusula THEN, que especifica los resultados que se devuelven si se cumple la condición. Si hay varias cláusulas WHEN, la expresión CASE devuelve el resultado de la primera cláusula que se cumple. Puedes usar cualquier expresión válida en la cláusula THEN.
Notas
Todas las cláusulas THEN de una expresión CASE deben devolver el mismo tipo de resultado.
Por ejemplo, si la primera cláusula THEN devuelve texto, las demás cláusulas THEN también deben devolver texto.
ELSE else_result
La cláusula opcional ELSE especifica un resultado predeterminado, que se devuelve si no se cumple ninguna cláusula WHEN. Si una expresión CASE no tiene ninguna cláusula ELSE y tampoco se cumple ninguna cláusula WHEN, la instrucción devuelve NULL
. Las expresiones CASE solo pueden contener una cláusula ELSE.
Otro ejemplo
Puedes sustituir uno de los valores por otro. Por ejemplo, puedes facilitar la lectura de los datos sustituyendo los códigos por nombres más intuitivos:
CASE Payment Type
WHEN "CC" THEN "Credit Card"
WHEN "D" THEN "Debit Card"
WHEN "GC" THEN "Gift Card"
WHEN "UNK" THEN "Unknown"
ELSE Payment Type
END