Sunteți pe pagina 1din 3

Ministerul Educaţiei, Culturii și Cercetării al Republicii Moldova

Universitatea Tehnică a Moldovei


Departamentul Ingineria Software și Automatică

RAPORT
Lucrare de laborator Nr.5
Disciplina: BD
Tema: Transact- SQL. Instrucțiuni procedurale

A efectuat: st.gr. TI-192,


Mereuță Ana

A verificat : asist.univ.
Scrob Sergiu

Chișinău 2021
Sarcina 1: Completați următorul cod pentru a afița cel mai mare număr dintre cele trei numere
prezentate:

declare @n1 int, @n2 int, @n3 int;


declare @greatest int;
set @n1 = 60 * RAND();
set @n2 = 60 * RAND();
set @n3 = 60 * RAND();

if (@n1 > @n2 and @n1 > @n3) set @greatest = @n1
else if (@n2 > @n1 and @n2 > @n3) set @greatest = @n2
else if (@n3 > @n1 and @n3 > @n2) set @greatest = @n3
else print 'The numbers are equal'

print @n1;
print @n2;
print @n3;
print 'The greatest = ' + cast(@greatest as varchar(2));

Sarcina 2: Afișati primele zece date (numele, prenumele studentului) in functie de valoarea
notei (cu exceptia notelor 6 și 8) a studentului la primul test al disciplinei Baze de date , folosind
structura de altemativa IF. .. ELSE. Să se foloseasca variabilele.
use universitatea
declare @test_name nvarchar(50), @name_disciplina nvarchar(50);
set @test_name = 'Testul 1';
set @name_disciplina = 'Baze de date';

IF EXISTS
(SELECT * FROM studenti s JOIN studenti_reusita sr ON s.Id_Student = sr.Id_Student
JOIN discipline d ON sr.Id_Disciplina = d.Id_Disciplina
WHERE (Nota != 6 OR Nota != 8) AND Tip_Evaluare = @test_name
AND Disciplina = @name_disciplina)
BEGIN
(SELECT TOP (10) Nume_Student, Prenume_Student, Nota FROM studenti s JOIN
studenti_reusita sr ON s.Id_Student = sr.Id_Student
JOIN discipline d ON sr.Id_Disciplina = d.Id_Disciplina
WHERE (Nota != 6 OR Nota != 8) AND Tip_Evaluare = @test_name
AND Disciplina = @name_disciplina)
ORDER BY Nota asc
END
Sarcina 3: Rezolvați aceeași sarcina, 1, apelând la structura selectivă CASE.
declare @n1 int, @n2 int, @n3 int, @greatest int;
set @greatest = 0;
set @n1 = 60 * RAND();
set @n2 = 60 * RAND();
set @n3 = 60 * RAND();

select @n1 as first_num, @n2 as second_num, @n3 as third_num,


case
when @n1 > @n2 and @n1 > @n3 then @greatest + @n1
when @n2 > @n1 and @n2 > @n3 then @greatest + @n2
when @n3 > @n1 and @n3 > @n2 then @greatest + @n3
end as greatest_number

S-ar putea să vă placă și