DevPath · Aprende a programar ESPTEN

SQL avanzado: ventanas, vistas y CASE

Lógica condicional con CASE

La expresión CASE

CASE es el "if/else" de SQL: evalúa condiciones en orden y devuelve el valor de la primera que se cumple. Es una expresión, así que puede ir en cualquier sitio donde quepa un valor: en el SELECT, en el ORDER BY, etc.

SELECT
  nombre,
  precio,
  CASE
    WHEN precio < 50  THEN 'barato'
    WHEN precio < 200 THEN 'medio'
    ELSE 'caro'
  END AS rango
FROM productos;

Forma abreviada

Cuando comparas una misma columna contra valores concretos, hay una forma más corta:

SELECT nombre,
  CASE categoria
    WHEN 'perifericos' THEN 'accesorio'
    WHEN 'pantallas'   THEN 'visualizacion'
    ELSE 'otro'
  END AS tipo
FROM productos;

Cuidado con el orden de las condiciones. Como gana la primera que se cumple, las ramas más específicas deben ir antes que las más generales.

Ejemplos

Clasificar precios en rangos legibles

SELECT nombre, precio,
  CASE
    WHEN precio < 50  THEN 'barato'
    WHEN precio < 200 THEN 'medio'
    ELSE 'caro'
  END AS rango
FROM productos
ORDER BY precio;
Pon esto en práctica

DevPath es un curso práctico: aquí lees la teoría; en la app la pones en práctica con ejercicios que se ejecutan de verdad, sin conexión.

Empezar gratis en la app →
Funciones de ventana →