Expresión CASE en SQL Server
La expresión CASE en SQL Server es comúnmente utilizado para la comparación de valores para asignar otra.
Podemos utilizar la expresión CASE de dos maneras:
- Case sencilla, permite realizar únicamente una igualdad.
- Case buscada, permite realizar la comparación de valores para la asignación de un resultado.
Ejemplo de CASE sencilla
En el siguiente código podemos observar cómo se utiliza este tipo de CASE:
SELECT
ProductName,
CategoryID,
CASE CategoryID
WHEN 1 THEN 'Bebidas'
WHEN 2 THEN 'Condimentos'
WHEN 3 THEN 'Postres'
ELSE 'Bebidas' END AS 'Categoria'
FROM
Products
WHERE
ProductID = 1;
- Iniciamos con CASE seguido del valor que vamos a comparar.
- Con When establecemos que si el valor es igual a ‘x’ valor el resultado Then será ‘y’ valor.
- En caso de que no se encuentre algún valor definido, agregamos Else y el valor resultante.
- Para finalizar el Case agregamos End.
- Agregamos un alias con AS seguido de la descripción, si no se coloca el nombre de la columna será (No columna name).
Como resultado en la consulta anterior obtenemos.
Podría interesarte Condicionante IF ELSE en SQL Server
Ejemplo de CASE de búsqueda
Un poco similar al ejemplo anterior, sin embargo, en este ejemplo realizamos algunas comparaciones para dar un resultado:
SELECT
ProductName,
UnitPrice,
CASE
WHEN UnitPrice <=15 THEN 'Bajo precio'
WHEN UnitPrice >15 AND UnitPrice <50 THEN 'Precio medio'
ELSE 'Precio alto' END AS 'Precio'
FROM
Products
WHERE
ProductID = 1;
- El valor de comparación es colocado en When.
- En cada when se realiza la comparación.
Como resultado podemos obtener lo siguiente.
La base de datos NorthWind fue utilizada en los ejemplos anteriores, esta base de datos la puedes encontrar en el siguiente post.