Usando la sentencia CASE en SQL Server 2019
Usamos la sentencia case para condicionar el flujo de datos en una variable usando SQL Server.
Para comenzar usaremos un caso práctico para ejemplificar el uso de la sentencia CASE.
Caso Práctico
Crearemos una base de datos de empleados usando el siguiente script.
use master
create database BDEMPLEADOS
use BDEMPLEADOS
CREATE TABLE Cargo
(
id int primary key identity(1,1),
nombre varchar(50)
);
CREATE TABLE Empleado
(
id int primary key identity(1,1),
nombres varchar(50),
apellidos varchar(50),
fechanac date,
idcargo int,
CONSTRAINT FK_Cargo_Empleado FOREIGN KEY (idcargo) REFERENCES Cargo(id)
);
Quedando el diagrama de base de datos de la siguiente forma:
Ahora insertaremos algunos datos para hacer la prueba de la sentencia CASE.
Requerimos usar la sentencia CASE para evaluar la edad de los empleados a través de ciertos intervalos establecer un obsequio de navidad.
SELECT (nombres+' '+apellidos) as empleado,CASE WHEN DATEDIFF(YY,fechanac,GETDATE())>25 THEN 'Canasta Navideña'
WHEN DATEDIFF(YY,fechanac,GETDATE())>18 THEN 'Paneton' END as obsequio from Empleado
Quedando finalmente el resultado de la consulta de la siguiente manera:
Se evalúa con el uso de la función DATEDIFF para obtener la edad actual del empleado a partir de la fecha de nacimiento y se condiciona usando la sentencia CASE. Cuando la edad es mayor a 25 se recibirá como obsequio una canasta navideña y cuando la edad es mayor a 18 se entregará paneton al empleado.
Al final se ejecutó la consulta y aparece el nombre del empleado junto con el obsequio.
Publicar un comentario
0 Comentarios