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