3 Casos de Uso para la Sentencia Case When de SQL

3 Casos de Uso para Case When en SQL

Explicado con ejemplos

Foto de Tobias Fischer en Unsplash

En pocas palabras, la declaración CASE WHEN evalúa condiciones dadas y devuelve resultados basados en esta evaluación.

Podemos usarlo para derivar nuevas columnas a partir de las existentes. Sin embargo, hay otros casos en los que CASE WHEN resulta útil para resolver tareas complejas.

Lo que aprenderemos en este artículo:

  • Usar CASE WHEN para derivar nuevas columnas
  • Usar CASE WHEN en GROUP BY
  • Usar CASE WHEN en el cálculo de agregaciones basadas en categorías derivadas

Realizaremos consultas en una tabla product_inventory que he creado con datos simulados. Aquí están las primeras cinco filas de esta tabla:

(imagen por autor)

1. Usar Case When para Derivar Nuevas Columnas

La declaración CASE WHEN (o CASE) permite evaluar condiciones cuyos resultados pueden ser utilizados para crear nuevas columnas.

(imagen por autor)

Por ejemplo, podemos crear una nueva columna price_group con los valores low, VoAGI, high basados en los precios de los productos. Se puede considerar como la creación de grupos de precios de productos.

SELECT product_description, price, CASE  WHEN price > 20 THEN 'high'  WHEN price <= 20 AND price > 10 THEN 'VoAGI'  WHEN price <= 10 THEN 'low' END AS price_group FROM product_inventory
Las primeras 10 filas del resultado de la consulta anterior (imagen por autor)

La declaración CASE WHEN crea la columna product_column basada en los siguientes criterios:

  • Si el precio es mayor a 20, el valor es “high”.
  • Si el precio está entre 10 y 20, el valor es “VoAGI”.
  • Si el precio es menor a 10, el valor es “low”.

También podemos escribir esta consulta de la siguiente manera:

SELECT product_description, price, CASE  WHEN price > 20 THEN 'high'  WHEN...