CASE() en MySQL

En esta lección aprenderás a usar CASE en MySQL. Expresión condicional.

Las funciones de lógica, tipos y utilidades te permiten manejar valores nulos, convertir tipos o tomar decisiones condicionales en SQL sin cambiar los datos almacenados en la tabla. El resultado se calcula en el momento de ejecutar la consulta.

En el editor SQL de The Data Schools practicamos con SQLite y compatibilidad T-SQL. La sintaxis de muchas funciones MySQL coincide o tiene un equivalente cercano que puedes probar al instante.


¿Qué hace CASE?

Expresión condicional. En consultas reales suele aplicarse sobre la columna <code class="code-command">Nombre_Cliente</code> de la tabla <code class="code-command">Clientes</code>, aunque también admite literales y expresiones.

Piensa en CASE() como una herramienta de transformación: lees un valor, aplicas la función y obtienes un nuevo valor listo para mostrar, filtrar o agrupar.


Sintaxis

La forma general en MySQL es:

CASE()

Sustituye los argumentos por columnas, números o cadenas entre comillas simples. Usa un alias con <code class="code-command">AS</code> para que el encabezado del resultado sea legible.


Ejemplo básico

Empieza con un caso sencillo para ver qué devuelve la función. Ejecuta la consulta en el editor y observa el nombre de la columna resultante.

Probar CASE

    SELECT Nombre_Cliente, CASE WHEN N_Ventas > 100 THEN 'A' ELSE 'B' END AS Grupo FROM Clientes LIMIT 3;

  
Pruébalo tú mismo

Ejemplo con Clientes

Ahora aplicamos CASE() sobre datos de la tabla de demostración. Este patrón es el que usarás en proyectos reales: seleccionar columnas originales, añadir una columna calculada y opcionalmente filtrar con <code class="code-command">WHERE</code>.

CASE en contexto

    SELECT Ciudad, CASE WHEN N_Ventas >= 100 THEN 'Alto' WHEN N_Ventas >= 50 THEN 'Medio' ELSE 'Bajo' END AS Nivel FROM Clientes LIMIT 6;

  
Pruébalo tú mismo

Cuándo usarla

Cuando necesites manejar valores nulos, convertir tipos o tomar decisiones condicionales en SQL.

En un <code class="code-command">SELECT</code> para crear una columna calculada con alias (<code class="code-command">AS</code>).

Junto con <code class="code-command">WHERE</code> o <code class="code-command">ORDER BY</code> si el resultado de CASE ayuda a filtrar u ordenar.


Resumen

  • CASE() trabaja con lógica, tipos y utilidades.
  • Devuelve un valor calculado; no altera la tabla original.
  • En MySQL, combínala con columnas reales como Nombre_Cliente.
  • Combina estas funciones con WHERE y CASE para consultas más expresivas.