SQL CASE: Cómo utilizar este operador, Ejemplos y sintaxis

CASE es una instrucción que se utiliza para crear condiciones y devuelve los valores cuando se cumple con la condición especificada (como por ejemplo son las instrucciones IF-THEN-ELSE).

Cuando la condición se cumple, dejará de leer y devolverá el resultado. Si las condiciones especificadas no se cumplen, devolverá el valor en la cláusula ELSE.

Si ninguna condición se cumple, tanto para CASE como para ELSE y ninguna condición se cumple, devolverá NULL.

Ejemplo de la sintaxis de CASE en SQL

A continuación puedes ver como se monta una consulta SQL utilizando la instrucción CASE en SQL:

CASE 
    WHEN condicion1 THEN resultado1
    WHEN condicion2 THEN resultado2
    WHEN condicionN THEN resultadoN
    ELSE resultado
END;

Ejemplo de la instrucción CASE:

En el ejemplo. este script de SQL devuelve un valor cuando se cumple la primera regla o condición:

SELECT PedidoID, Cantidad,
CASE
    WHEN Cantidad > 20 THEN 'La cantidad es mayor que 20'
    WHEN Cantidad = 20 THEN 'La cantidad es 20'
    ELSE 'La cantidad está por debajo de 20'
END AS grupocantidad
FROM DetallesPedido;

Ejemplo de la combinación CASE con ORDER BY:

En el siguiente ejemplo puedes ver cómo se podría combinar la instrucción CASE con ORDER BY en una consulta SQL

SELECT NombreCliente, Ciudad, Pais
FROM Clientes
ORDER BY
(CASE
    WHEN Ciudad IS NULL THEN 'País'
    ELSE Ciudad
END);