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.

Expresión CASE en SQL Server

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.

Case de busqueda

La base de datos NorthWind fue utilizada en los ejemplos anteriores, esta base de datos la puedes encontrar en el siguiente post.

Deja un comentario

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