Está en la página 1de 10

CONSTRUCCIÓN DE

BASES DE DATOS II

ESTRUCTURA CASE
ESTRUCTURA CASE

La sentencia "case" compara valores y devuelve un resultado.


La sintaxis es la siguiente:
case dato(valor) a comparar case
when valor1 then Resultado1 when dato(valor) <operador> then Resultado1
when valor2 then Resultado2 when dato(valor) <operador> then Resultado2

...
else Resultado3
end
• Por cada valor hay un "when" y un then
• si encuentra un valor coincidente en algún "when" ejecuta el "then"
correspondiente a ese "when“
• si no encuentra ninguna coincidencia, se ejecuta el "else"; si no hay parte "else"
retorna "null".
• Finalmente se coloca "end" para indicar que el "case" ha finalizado

Fuente: https://www.tutorialesprogramacionya.com/sqlserverya/temarios/descripcion.php?cod=116&punto=110&inicio=
EJEMPLO 1

SELECT idD, nomD,edadD,


CASE edadD
WHEN 20 THEN 'Categoria 1'
WHEN 27 THEN 'Categoria 2'
WHEN 28 THEN 'Categoria 3.'
else
'Sin categoria'
END As Clasificacion
FROM tblDeportista
EJEMPLO 2
SELECT idD, nomD,edadD,
CASE
WHEN edadD > 30 THEN 'Categoria 1'
WHEN edadD<30 THEN 'Categoria 2'
else
'Sin categoria'
END As Clasificacion
FROM tblDeportista
EJEMPLO 3
SELECT idD, nomD,edadD, pesoD,
CASE
WHEN edadD > 20 and pesoD >80 THEN 'Categoria 1'
WHEN edadD=27 THEN 'Categoria 2'
WHEN edadD>28 THEN 'Categoria 3.'
else
'Sin categoria'
END As Clasificacion
FROM tblDeportista
EJEMPLO 4
SELECT edadD,
CASE
WHEN edadD > 20 and edadD <27 THEN avg(pesoD)
WHEN edadD=27 THEN avg(estaturaD)
WHEN edadD > 28 THEN avg(edadD)
else
edadD
END As Resultado
FROM tblDeportista
group by edadD
EJEMPLO 5
DECLARE @promedioPesoD int
select @promedioPesoD=avg(pesoD) from tblDeportista
where tblDeportista.edadD>21
SELECT edadD,nomD,pesoD,
CASE
WHEN pesoD < @promedioPesoD THEN 'Plan Nutrición 1'
WHEN pesoD >= @promedioPesoD THEN 'Plan Nutrición 2'
END As Resultado
FROM tblDeportista
EJERCICIO PROPUESTO

NroRegistro(int) fechaRegistro idEstudiante idProfesor NotaDefinitiva


primary key (date) (int) (int) (numeric(4,2))
1 28/09/2022 100 1000 4,6
2 27/09/2022 200 1000 5
3 28/09/2022 300 2000 3,2
4 27/09/2022 400 2000 4,1
5 27/09/2022 500 1000 3,7
EJEMPLO PROPUESTO

Utilice la sentencia CASE para mostrar la nota


definitiva, el código del estudiante, y la clasificación
de la nota de acuerdo a su valor. La clasificación será:
Nota menor 3 - Deficiente
nota entre 3 y 3.4 - Aceptable
Nota entre 3.5 y 4- Bueno
Nota entre 4.1 y 5 - Excelente
EJEMPLO PROPUESTO

Calcular el promedio de notas definitivas de todos los


estudiantes. Luego utilice la sentencia CASE para
clasificar(Categoria1) los estudiantes que tengan nota
definitiva mayor al promedio, y clasificar(Categoria2)
los que tengan nota definitiva menor al promedio.

También podría gustarte