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áusula WHEN compara input_expression con input_expression y 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áusula 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 instrucción CASE devuelve el resultado de la primera cláusula que se cumple.
  • else_result (opcional): puede ser cualquier campo o expresión válidos. La cláusula ELSE else_result especifica un resultado predeterminado para la instrucción CASE. Esta cláusula se devuelve si no se cumple ninguna cláusula WHEN. Si una instrucción CASE no tiene ninguna cláusula ELSE y tampoco se cumple ninguna cláusula WHEN, la instrucción CASE devuelve NULL.

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 compara input_expression. Si el valor es igual a input_expression, se cumple esta cláusula. Puedes incluir varias cláusulas WHEN en una sola instrucción CASE.
  • THEN : el resultado que devuelve la expresión si se cumple la condición de la cláusula WHEN. La instrucción CASE debe contener una cláusula THEN por cada cláusula WHEN.
  • ELSE : 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 cláusula ELSE.
  • 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