CASE en SQL

La expresión CASE en SQL permite lógica condicional dentro de una consulta: devuelve valores distintos según se cumplan unas reglas u otras (similar a IF THEN ELSE en otros lenguajes).

CASE en SQL es una pieza habitual del flujo SQL: consultar, filtrar, agrupar o modificar datos. Cada ejemplo usa tablas de demostración para que puedas experimentar sin riesgo.

Cómo practicar: ejecuta la consulta tal cual, revisa columnas y tipos, luego cambia un filtro o un alias y vuelve a ejecutar.

CASE en SQL es una pieza habitual del flujo SQL: consultar, filtrar, agrupar o modificar datos. Cada ejemplo usa tablas de demostración para que puedas experimentar sin riesgo.

Cómo practicar: ejecuta la consulta tal cual, revisa columnas y tipos, luego cambia un filtro o un alias y vuelve a ejecutar.

SQL evalúa las condiciones en orden y se detiene en la primera que sea verdadera. Si ninguna coincide, usa ELSE (o NULL si no hay ELSE ).


Sintaxis CASE en SQL

La sintaxis indica el orden de argumentos y palabras clave. Copia la plantilla y sustituye nombres de columnas o literales entre comillas simples.

CASE buscado (WHEN condición)

    CASE
  WHEN condicion1 THEN resultado1
  WHEN condicion2 THEN resultado2
  ELSE resultado_default
END AS alias_columna
  

CASE simple (WHEN valor)

    CASE columna
  WHEN valor1 THEN resultado1
  WHEN valor2 THEN resultado2
  ELSE resultado_default
END
  

Ejemplo CASE en SQL

Etiqueta cada cliente según N_Ventas :

Nivel Alto / Medio / Bajo

    SELECT Nombre_Cliente, N_Ventas,
  CASE
    WHEN N_Ventas >= 100 THEN 'Alto'
    WHEN N_Ventas >= 70 THEN 'Medio'
    ELSE 'Bajo'
  END AS Nivel
FROM Clientes
ORDER BY N_Ventas DESC;
  
Abrir en editor

Resultado: María López → Alto; clientes con 45 ventas → Bajo.

Nombre_ClienteN_VentasNivel
María López200Alto
John Smith150Alto
Ana García120Alto
… 7 filas más

Tabla demo para CASE

Base de datos de demostración: Clientes

Observa qué columnas devuelve la consulta y cómo se nombran con AS. Ese alias es lo que verás en la cuadrícula del editor.

ID_Cliente Nombre_Cliente Ciudad Pais N_Ventas
1Ana GarcíaMadridEspaña120
2Luis PérezBarcelonaEspaña85
3María LópezValenciaEspaña200
4Carlos RuizMadridEspaña45
5Elena TorresSevillaEspaña67
6John SmithLondonUK150
7Marie DuboisParisFrancia92
8Hans MüllerBerlinAlemania78
9Luca RossiRomaItalia110
10Sofia AndersStockholmSuecia55
Tabla Clientes en el editor SQL (10 filas). La usamos en la mayoría de ejemplos de esta fase.

CASE simple (WHEN valor)

Nacional o internacional

    SELECT TOP 6 Nombre_Cliente, Pais,
  CASE Pais
    WHEN 'España' THEN 'Nacional'
    ELSE 'Internacional'
  END AS Tipo
FROM Clientes
ORDER BY Nombre_Cliente;
  
Abrir en editor

CASE en DetallesPedido

Tamaño del pedido por cantidad

    SELECT ID_Pedido, ID_Producto, Cantidad,
  CASE
    WHEN Cantidad >= 3 THEN 'Grande'
    WHEN Cantidad = 2 THEN 'Medio'
    ELSE 'Pequeño'
  END AS Tamanio
FROM DetallesPedido
ORDER BY Cantidad DESC;
  
Abrir en editor

Resumen CASE

  • CASE añade columnas calculadas con reglas condicionales.
  • Forma buscada: WHEN condición THEN ; forma simple: CASE col WHEN valor .
  • Combínalo con ORDER BY , GROUP BY u otras expresiones.
  • Siguiente paso: comodines con LIKE .

Cómo practicar en el editor

1. Pulsa Pruébalo tú mismo en un ejemplo.
2. Cambia un filtro, columna o literal.
3. Ejecuta y compara el resultado con la tabla de ejemplo.

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.