Usando la sentencia CASE en SQL Server 2019

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:

bdempleados sql server case

Ahora insertaremos algunos datos para hacer la prueba de la sentencia CASE.

bdempleados sql server inserts

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:

sql server case query

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

Guardar mi nombre, correo electrónico y sitio web en este navegador la próxima vez que comente

0 Comentarios