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);