En SQL, la cláusula CASE
es una herramienta poderosa para manejar condiciones dentro de una consulta. Nos permite evaluar expresiones y devolver diferentes resultados según los criterios establecidos.
Uno de los usos más comunes de CASE
es en una consulta SELECT
, donde podemos modificar la salida de los datos según ciertas condiciones. También podemos definir un valor por defecto cuando ninguna condición se cumple.
Ejemplo: Evaluando el Estado de un Pedido
Imaginemos una tabla llamada Pedidos
, que almacena información sobre compras en una tienda:
id_pedido | cliente | total | estado |
---|---|---|---|
1 | Juan | 500 | Enviado |
2 | María | 120 | Pendiente |
3 | Carlos | 50 | Cancelado |
4 | Laura | 800 | Enviado |
Queremos crear una consulta que muestre el estado del pedido de una manera más clara:
- Si el pedido ha sido “Enviado”, se mostrará “Pedido Entregado”.
- Si el pedido está “Pendiente”, se mostrará “Procesando Pedido”.
- Si el pedido fue “Cancelado”, se mostrará “Pedido Anulado”.
- Si el estado no coincide con ninguna de estas opciones, se mostrará un mensaje por defecto: “No cumple con el criterio”.
Consulta SQL con CASE
sqlCopiarEditarSELECT
id_pedido,
cliente,
total,
estado,
CASE
WHEN estado = 'Enviado' THEN 'Pedido Entregado'
WHEN estado = 'Pendiente' THEN 'Procesando Pedido'
WHEN estado = 'Cancelado' THEN 'Pedido Anulado'
ELSE 'No cumple con el criterio'
END AS estado_final
FROM Pedidos;
Explicación de la Consulta
- Seleccionamos los datos de la tabla
Pedidos
. - La columna
estado
se evalúa conCASE
:- Si el estado es
'Enviado'
, se mostrará'Pedido Entregado'
. - Si es
'Pendiente'
, se mostrará'Procesando Pedido'
. - Si es
'Cancelado'
, se mostrará'Pedido Anulado'
. - Si el estado no coincide con ninguna opción, se asigna
'No cumple con el criterio'
.
- Si el estado es
Resultado Esperado
id_pedido | cliente | total | estado | estado_final |
---|---|---|---|---|
1 | Juan | 500 | Enviado | Pedido Entregado |
2 | María | 120 | Pendiente | Procesando Pedido |
3 | Carlos | 50 | Cancelado | Pedido Anulado |
4 | Laura | 800 | Enviado | Pedido Entregado |
Si en la tabla existiera un nuevo estado no definido en el CASE
, se mostraría 'No cumple con el criterio'
.
Conclusión
El uso de CASE
en SQL es ideal para transformar datos de manera dinámica sin modificar la estructura de la base de datos. Nos permite personalizar la salida de una consulta y mejorar la legibilidad de los resultados. 🚀
📌 ¿Usas CASE
en tus consultas SQL? Cuéntanos en los comentarios cómo lo aplicas en tu día a día.