Cómo utilizar una declaración CASE con múltiples condiciones

Cómo utilizar una declaración CASE con múltiples condiciones

La declaración CASE es una herramienta útil para escribir declaraciones condicionales en SQL. Puede utilizar una declaración CASE cuando necesite realizar una acción diferente según los diferentes valores de una sola columna de una tabla. Más aún, la declaración CASE admite múltiples condiciones, lo que permite una mayor flexibilidad en la escritura de expresiones. En este artículo, explicaremos cómo utilizar una declaración CASE con múltiples condiciones y ejemplificamos su uso en distintas situaciones.

📋 Aquí podrás encontrar✍
  1. Comenzando con la declaración CASE
  2. Ejemplos de uso de la declaración CASE con múltiples condiciones
    1. Categorización de los productos
    2. Asignación de valores numéricos
    3. Desviación de datos
  3. Conclusión
  4. Preguntas frecuentes
    1. ¿Puedo usar una declaración CASE en lugar de un condicional IF?
    2. ¿Cuál es la diferencia entre una declaración CASE y una instrucción de selección IF?
    3. ¿Puedo anidar declaraciones CASE?
    4. ¿Dónde puedo encontrar más información sobre las declaraciones CASE y su uso?
  5. Ejemplos de código

Comenzando con la declaración CASE

La sintaxis básica de una declaración CASE es la siguiente:

CASE columna
WHEN valor1 THEN resultado1
WHEN valor2 THEN resultado2
ELSE expresión final
END

La declaración CASE compara la columna especificada con los valores dados. Si la coincidencia con un valor se cumple, da el resultado correspondiente. Si ninguna de las condiciones se cumple, la expresión final se da como resultado.

Para utilizar una declaración CASE con múltiples condiciones, hay que escribir un bloque WHEN para cada una de ellas. Este es el formato básico:

CASE columna
WHEN condición1 THEN resultado1
WHEN condición2 THEN resultado2
...
WHEN condiciónN THEN resultadoN
ELSE expresión final
END

Una condición es una expresión que devuelve un valor booleano. También se pueden utilizar operadores lógicos para combinar varias condiciones.

Ejemplos de uso de la declaración CASE con múltiples condiciones

Categorización de los productos

Suponga que tiene una tabla con los inventarios de los productos de una tienda en línea. Cada producto tiene una descripción y un precio. Además, quiere clasificarlos de acuerdo a su precio en tres categorías: bajo, medio o alto.

Para hacerlo, puede escribir la siguiente declaración:

CASE
WHEN precio < 100 THEN 'bajo' WHEN precio >= 100 AND precio <= 500 THEN 'medio' WHEN precio > 500 THEN 'alto'
ELSE 'sin clasificación'
END

Esta declaración establece un rango de precios para cada categoría y asigna la descripción correcta a cada producto.

Asignación de valores numéricos

Suponga que tiene una tabla que contiene información sobre la edad de las personas, y quiere asignar un valor numérico para cada rango de edad. Por ejemplo, la edad de 0 a 10 años sería asignada el valor 1, de 11 a 20 años el valor 2, y así sucesivamente.

Puede usar una declaración CASE como esta:

CASE
WHEN edad >= 0 AND edad <= 10 THEN 1 WHEN edad >= 11 AND edad <= 20 THEN 2 ... ELSE 0 END

De esta manera, puede agregar una columna numérica que asigne automáticamente una edad para cada rango.

Desviación de datos

Suponga que tiene una tabla que contiene datos de temperaturas que le gustaría normalizar utilizando una función matemática. Además, quiere que los valores sean redondeados al número entero más cercano.

Realizando los casos se puede llevar a cabo la normalización con una linea de código:

CASE
WHEN temperatura < 50 THEN ROUND(temperatura+10) WHEN temperatura >= 50 AND temperatura < 100 THEN ROUND(temperatura*1.25) WHEN temperatura >100 THEN ROUND(temperatura/2)
END

Conclusión

Como hemos visto, la declaración CASE es una herramienta útil y poderosa para escribir declaraciones condicionales en SQL. Al utilizar múltiples condiciones, puede lograr una mayor flexibilidad y precisión en sus expresiones. Los ejemplos mencionados en este artículo son sólo una pequeña muestra de las muchas situaciones en las que la declaración CASE es útil.

Preguntas frecuentes

¿Puedo usar una declaración CASE en lugar de un condicional IF?

Sí, es posible. De hecho, la declaración CASE es a menudo una alternativa más clara y fácil de leer que los condicionales IF anidados.

¿Cuál es la diferencia entre una declaración CASE y una instrucción de selección IF?

La principal diferencia es la sintaxis: las declaraciones CASE son más eficientes y compactas en términos de escritura de código. Además, mientras que una instrucción IF devuelve un valor booleano, la declaración CASE devuelve diferentes resultados, dependiendo de las condiciones especificadas.

¿Puedo anidar declaraciones CASE?

Sí, la estructura CASE también puede anidarse dentro de otra estructura CASE. Esto permite construir declaraciones complejas que cubren muchos casos y condiciones diferentes.

¿Dónde puedo encontrar más información sobre las declaraciones CASE y su uso?

La documentación de SQL, y específicamente, la sección sobre declaraciones CASE, es una buena fuente de información y referencia para aquellos que deseen profundizar en el tema.

Ejemplos de código

  • Ejemplo de una declaración CASE con múltiples condiciones utilizada en SQL Server:
  • SELECT
    ProductID,
    Category =
    CASE
    WHEN UnitPrice < 10 THEN 'Barato' WHEN UnitPrice >= 10 AND UnitPrice <= 30 THEN 'Medio' WHEN UnitPrice > 30 THEN 'Caro'
    ELSE 'No clasificado'
    END
    FROM Production.Products;

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir