CASE (simple)
La instrucción CASE simple devuelve un resultado en función del 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
Sustituye 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: puede ser cualquier campo o expresión válidos.- [
expression_to_match: puede ser cualquier campo o expresión válidos. La cláusulaWHENcomparainput_expressionconinput_expressiony devuelve el valor true si son iguales o false si no lo son.]{#when-conditions} result: puede ser cualquier campo o expresión válidos. Cada cláusulaWHENdebe corresponderse con una cláusulaTHEN, que especifica los resultados que se devuelven si se cumple la condición. Si hay varias cláusulasWHEN, la instrucciónCASEdevuelve el resultado de la primera cláusula que se cumple.else_result(opcional): puede ser cualquier campo o expresión válidos. La cláusulaELSEelse_result especifica un resultado predeterminado para la instrucciónCASE. Esta cláusula se devuelve si no se cumple ninguna cláusulaWHEN. Si una instrucciónCASEno tiene ninguna cláusulaELSEy tampoco se cumple ninguna cláusulaWHEN, la instrucciónCASEdevuelveNULL.
Cómo funciona la expresión CASE simple
Una instrucción CASE simple consta de los siguientes elementos:
- La palabra clave
CASE, seguida de una expresión de entrada. WHEN: el valor con el que se comparainput_expression. Si el valor es igual ainput_expression, se cumple esta cláusula. Puedes incluir varias cláusulasWHENen una sola instrucciónCASE.THEN: el resultado que devuelve la expresión si se cumple la condición de la cláusulaWHEN. La instrucciónCASEdebe contener una cláusulaTHENpor cada cláusulaWHEN.ELSE: opcional. Si no se cumple ninguna de las condiciones de las cláusulasWHEN,CASEdevuelve el valor de la cláusulaELSE, oNULLsi no se ha especificado ninguna cláusulaELSE.- 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.
Ejemplo
Para proporcionar enlaces personalizados a 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