Uso de la Expresión CASE en SQL Server
Sintaxis Case when SQL
CASE WHEN Condicion1 THEN Resultado1 WHEN Condicion2 THEN Resultado2 WHEN CondicionN THEN ResultadoN ELSE result END
Si ninguna condición es verdadera, nos devolverá el valor especificado en la cláusula ELSE.
Dentro de la expresión CASE SQL podemos hacer uno de Operadores de Comparación, Crear expresiones simples, Utilizar cláusulas como ORDER BY, GROUP BY, realizar ejecución de sentencias Update, Insert Into y Select.
Ejemplo de CASE en SQL
SELECT NombreProducto, Presentacion, Marca FROM IProductos ORDER BY (CASE WHEN Marca IS NULL THEN Presentacion ELSE Marca END)
Veamos la ejecución de la consulta en Management Studio de Sql Server:
La consulta verifica si la primera condición en este caso "marca" si es válida y procede a ordenar los registros . De haber sido Null la consulta ordenaría los registros por la presentación.
Ahora vamos a utilizar otra tabla llamada compras para realizar otro ejemplo.
De la siguiente tabla vamos a seleccionar las compras según su tipo de compra y además vamos a obtener el monto mínimo y máximo de esa compra, veamos la consulta.
SELECT CASE WHEN NetoPagar >= 2000 THEN 'Credito' WHEN NetoPagar >= 2500 THEN 'Contado' ELSE 'Credito' END AS Estado, MIN(NetoPagar) as MontoMInimo, MAX(NetoPagar) as MontoMaximo FROM ICompras GROUP BY CASE WHEN NetoPagar >= 2000 THEN 'Credito' WHEN NetoPagar >= 2500 THEN 'Contado' ELSE 'Credito' END
Obtengamos el resultado de la ejecución de la consulta:
En la consulta ejecutada podemos ver que tenemos una cláusula Group By con la cual obtenemos los registros requeridos . al cumplirse la condición podemos ver agrupado los registros de de la compra.
Como hacíamos mención al inicio también podemos usar CASE en SENTENCIAS DML. Veamos un ejemplo actualicemos las marcas de productos que que tenga por nombre "Roma" y "Helpeck" Actualicemos por "Ina" y "Numar", veamos la consulta.
UPDATE IProductos SET Marca = CASE Marca WHEN 'Roma' THEN 'Ina' WHEN 'Helpeck' THEN 'Numar' ELSE 'AG' END
Veamos el resultado de la ejecución de la consulta y comparemos los registros antes de la actualización:
Hemos procedido a actualizar los registros veamos y comparemos la tabla con las actualizaciones aplicadas.
Como hemos visto los registros ha sido actualizados según la condición que hemos declarado en la expresión CASE.
En esta sección hemos aprendido el uso de la expresión CASE la cual nos brinda mucha flexibilidad al obtener registros de una tabla.
0 Comentarios