CASE (simple)

La función CASE simple devuelve un resultado basado en el valor de una sola expresión de entrada o un resultado predeterminado si no coincide ninguno de los valores de comparación.

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álidos.
  • [expression_to_match: Cualquier campo o expresión válidos. La cláusula WHEN compara input_expression con input_expression y devuelve verdadero si los dos son iguales, o falso si no lo son.]{#when-conditions}
  • result : Cualquier campo o expresión válidos. Cada cláusula WHEN debe tener una cláusula THEN coincidente, que especifica los resultados que se devolverán si esa condición es verdadera. Si hay varias cláusulas WHEN, la instrucción CASE devuelve el resultado de la primera cláusula verdadera.
  • else_result (opcional): Cualquier campo o expresión válidos. La cláusula ELSE else_result especifica un resultado predeterminado para la declaración CASE. Esta cláusula se devuelve si ninguna de las cláusulas WHEN es verdadera. Si una instrucción CASE no tiene una cláusula ELSE y ninguna de las cláusulas WHEN es verdadera, la instrucción CASE devuelve NULL.

Cómo funciona la CASE simple

Una instrucción 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 compara el input_expression. Si el valor es igual al input_expression, esta cláusula es verdadera. Puedes tener varias cláusulas WHEN en una sola instrucción CASE.
  • THEN : Es el resultado que se devolverá si la condición de la cláusula WHEN es verdadera. Debes tener una cláusula THEN para cada cláusula WHEN en tu instrucción CASE.
  • ELSE : Opcional. Si ninguna de las condiciones de la cláusula WHEN es verdadera, CASE devuelve el valor de la cláusula ELSE o NULL si no se especifica ninguna cláusula ELSE.
  • 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 de ELSE no se evalúan. Si todas las condiciones WHEN son falsas o NULL, CASE devuelve el resultado ELSE o, si no hay ninguna cláusula ELSE, devuelve NULL.

Ejemplo

Proporciona vínculos 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