Usar CASE
La expresión CASE se utiliza para evaluar varias condiciones y devolver un valor único para cada una. Por ejemplo, permite mostrar un valor alternativo dependiendo del valor de una columna. Este cambio es temporal; no se producen cambios permanentes en los datos.
La expresión CASE está formada por:
- La palabra clave CASE.
- El nombre de columna que se va a transformar.
- Cláusulas WHEN que especifican las expresiones que se van a buscar y cláusulas THEN que especifican las expresiones que las van a reemplazar.
- Una cláusula ELSE opcional que define la expresión que se devuelve si ninguna operación de comparación se evalúa como TRUE.
- La palabra clave END.
- Una cláusula AS opcional que define un alias de la expresión CASE.
Una utilización normal de la expresión CASE es sustituir códigos o abreviaturas por valores más legibles. En el ejemplo siguiente se utiliza la función CASE
para cambiar la visualización de las categorías de línea de producto de forma que resulten más comprensibles.
USE AdventureWorks;
GO
SELECT ProductNumber, Category =
CASE ProductLine
WHEN 'R' THEN 'Road'
WHEN 'M' THEN 'Mountain'
WHEN 'T' THEN 'Touring'
WHEN 'S' THEN 'Other sale items'
ELSE 'Not for sale'
END,
Name
FROM Production.Product
ORDER BY ProductNumber;
GO
CASE también se utiliza para clasificar datos. En la siguiente consulta se utiliza la función CASE
para clasificar precios.
USE AdventureWorks;
GO
SELECT ProductNumber, Name, 'Price Range' =
CASE
WHEN ListPrice = 0 THEN 'Mfg item - not for resale'
WHEN ListPrice < 50 THEN 'Under $50'
WHEN ListPrice >= 50 and ListPrice < 250 THEN 'Under $250'
WHEN ListPrice >= 250 and ListPrice < 1000 THEN 'Under $1000'
ELSE 'Over $1000'
END
FROM Production.Product
ORDER BY ProductNumber ;
GO
Para obtener más ejemplos, vea CASE (Transact-SQL).
Vea también
Otros recursos
CASE (Transact-SQL)
NULLIF (Transact-SQL)
COALESCE (Transact-SQL)