Nimic
Nimic
ADD
HasFrench Bit NOT NULL DEFAULT 0,
HasEnglish Bit NOT NULL DEFAULT 0
�Request 5 � alter the �MyStudent�
table, setting the fields AdmGrade and
FinalGrade to accept only values
between 1 and 10
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
13.
SELECT FirstName, LastName, Year, Country
FROM Student
WHERE (Country = 'Romania' OR Year = '2') AND StudentID NOT IN
(SELECT StudentID
FROM Student
WHERE Country = 'Romania' AND Year = '2');
33.
SELECT TOP 1 FirstName, LastName, BirthDate, Year
FROM Student
WHERE Year='2'
ORDER BY BirthDate DESC;
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIII
1.a.
SELECT FirstName, LastName, [Year],
CASE [Year]
WHEN 1 THEN 'First'
WHEN 2 THEN 'Middle'
WHEN 3 THEN 'Last'
--ELSE 'Not a year'
END AS YearText
FROM Student;
1.b.
SELECT FirstName, LastName, [Year],
CASE
WHEN [Year]=1 THEN 'First'
WHEN [Year]=2 THEN 'Middle'
WHEN [Year]=3 THEN 'Last'
--ELSE 'Not a year'
END AS YearText
FROM Student;
29.v1.
SELECT CONCAT(FirstName, ' ', LastName) AS FullName,
LEN(CONCAT(FirstName, ' ', LastName)) AS Letters,
IIF(LEN(CONCAT(FirstName, ' ', LastName))>=12, 'Long Name', 'Short
Name') AS NameType
FROM Student;
29.v2.
SELECT CONCAT(FirstName, ' ', LastName) AS FullName,
LEN(CONCAT(FirstName, ' ', LastName)) AS Letters,
CASE
WHEN LEN(CONCAT(FirstName, ' ', LastName))>=12 THEN 'Long Name'
ELSE 'Short Name'
END AS NameType
FROM Student;
30.
SELECT FirstName, LastName, [Year],
CHOOSE([Year], 'First', 'Middle', 'Last') AS YearText
FROM Student;
31. (ROW_NUMBER)
SELECT
ROW_NUMBER() OVER(PARTITION BY Nationality ORDER BY AverageGrade DESC) AS
Ranking,
FirstName, LastName, Nationality, AverageGrade
FROM Student;
RANK.
SELECT
RANK() OVER (ORDER BY [Year] DESC) AS Ranking,
FirstName, LastName, [Year]
FROM Student;
DENSE_RANK.
SELECT
RANK() OVER (ORDER BY [Year] DESC) AS Ranking,
DENSE_RANK() OVER (ORDER BY [Year] DESC) AS DenseRanking,
FirstName, LastName, [Year]
FROM Student;
! QUARTILE = NTILE(4)
DECILE = NTILE(10)
PERCENTILE = NTILE(100)
32.
SELECT FirstName, LastName, AverageGrade,
NTILE(4) OVER (ORDER BY AverageGrade DESC)
FROM Student;
! RUNNING SUMS
MOVING AVERAGES
33.
SELECT FirstName, LastName, [Year], AverageGrade,
AVG(AverageGrade) OVER (PARTITION BY [Year] ORDER BY [Year] DESC) AS
YearAverage
FROM Student;
34.
SELECT FirstName, LastName, [Year], AverageGrade,
SUM(AverageGrade) OVER (PARTITION BY [Year] ORDER BY [AverageGrade] DESC) AS
SumOfGrades
FROM Student;
9.
SELECT FirstName, CHARINDEX('e', FirstName) AS Occurence
FROM Student;
16.
SELECT FirstName, LastName, AverageGrade, CEILING(AverageGrade) AS RoundedUp,
FLOOR(AverageGrade) AS RoundedDown, ROUND(AverageGrade, 1) AS SimpleRound
FROM Student;
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIII
10.
CREATE TRIGGER Student_INSERT_UPDATE
ON Student
AFTER INSERT, UPDATE
AS
UPDATE Student
SET Status = UPPER(Status)
WHERE StudentID IN (SELECT StudentID FROM Inserted);
UPDATE Student
SET AverageGrade = 8.50
WHERE StudentID = 105;
UPDATE Student
SET AverageGrade = 7.66
WHERE StudentID = 104;
1.v1.
SELECT City
FROM Student
WHERE StudentID IN
(SELECT TOP 1 StudentID FROM Student ORDER BY BirthDate DESC);
1.v2.
SELECT TOP 1 City FROM Student ORDER BY BirthDate DESC;
8.
UPDATE Student
SET AverageGrade = AverageGrade - 1
WHERE Nationality = 'Romanian'
AND
AverageGrade >= 1.2 * (SELECT MIN(AverageGrade) FROM Student);
9.
SELECT FirstName + ' ' + LastName AS FullName, Nationality
FROM Student
WHERE Nationality = 'Romanian' AND DATEDIFF(DAY, BirthDate, GETDATE()) <
(SELECT AVG(DATEDIFF(DAY, BirthDate, GETDATE())) FROM Student WHERE Nationality =
'Romanian');
UPDATE Student
SET AverageGrade = AverageGrade + 1
WHERE Status = 'Scholarship' AND Year = 2 AND AverageGrade < 9;
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIII
1.
CREATE VIEW MyFirstView
(FullName,Location,BirthYear,FinalGrade)
AS
SELECT FirstName+' '+LastName,
City+','+Country,
YEAR(BirthDate),
AverageGrade
FROM Student;
20.
CREATE Trigger MyTrigger02
ON MyStudent AFTER INSERT,UPDATE
AS
IF EXISTS (SELECT * FROM INSERTED WHERE Birthdate>'06-30-2001')
BEGIN
RAISERROR('All students must be born before June 2001',1,1)
ROLLBACK TRANSACTION
END
21.
CREATE Trigger MyTrigger03
ON MyStudent AFTER INSERT
AS
IF EXISTS (SELECT * FROM INSERTED WHERE FKFACULTYID IN
(SELECT FacultyId FROM MyFaculty WHERE FacultyName='Finance'))
BEGIN
RAISERROR('no new students can be added for the faculty of finance!',1,1)
ROLLBACK TRANSACTION
END
22.
CREATE Trigger MyTrigger04
ON MyStudent AFTER DELETE
AS
IF EXISTS (SELECT * FROM DELETED WHERE FKFACULTYID IN
(SELECT FacultyId FROM MyFaculty WHERE FacultyName='Marketing'))
BEGIN
RAISERROR('no new students can be added for the faculty of marketing!',1,1)
ROLLBACK TRANSACTION
END
23.
CREATE Trigger MyTrigger05
ON MyStudent AFTER UPDATE
AS
IF EXISTS (SELECT * FROM DELETED INNER JOIN INSERTED ON
Deleted.StudentID=Inserted.StudentID
WHERE Deleted.AdmGrade<>Inserted.AdmGrade)
BEGIN
RAISERROR('Admission grade can not be changed',1,1)
ROLLBACK TRANSACTION
END
24.
CREATE Trigger MyTrigger06
ON MyStudent AFTER UPDATE
AS
IF EXISTS (SELECT * FROM DELETED INNER JOIN INSERTED ON
Deleted.StudentID=Inserted.StudentID
WHERE Deleted.FinalGrade>Inserted.FinalGrade AND Inserted.FKFACULTYID IN
(SELECT FacultyId FROM MyFaculty WHERE FacultyName='Accounting'))
BEGIN
RAISERROR('New final grade shouldnt be smaller than the old one',1,1)
ROLLBACK TRANSACTION
END
ReqView15.