Showing posts with label TSQL Beginner. Show all posts
Showing posts with label TSQL Beginner. Show all posts

Monday, April 4, 2016

SQL Tutorial In Urdu - TSQL Case Statement


-- Example 1
SELECT StudentId, Name, Email, Mobile,
  CASE RegistrationType
   WHEN 1 THEN 'Online'
   WHEN 2 THEN 'In Person'
   WHEN 3 THEN 'By Phone'
   WHEN 4 THEN 'Email'
   WHEN 5 THEN 'By Post'
  END AS 'Registration Type'
  , DateOfRegistration, Gender
FROM [dbo].[Students]

-- Example 2
SELECT ResultId,
  StudentId,
  ReleaseDate,
  ExamTotal,
  StudentTotal
  , CASE WHEN [StudentTotal] < 300 THEN 'Fail' ELSE 'Pass' END AS Result
  , CASE 
   WHEN ([StudentTotal] * 100.0 /[ExamTotal]) > 80 THEN 'A1'
   WHEN ([StudentTotal] * 100.0 /[ExamTotal]) > 70 THEN 'A'
   WHEN ([StudentTotal] * 100.0 /[ExamTotal]) > 60 THEN 'B'
   WHEN ([StudentTotal] * 100.0 /[ExamTotal]) > 50 THEN 'C'
   WHEN ([StudentTotal] * 100.0 /[ExamTotal]) >= 40 THEN 'D'
   WHEN ([StudentTotal] * 100.0 /[ExamTotal]) < 40 THEN 'F'
    END AS Grade
FROM [dbo].[StudentResults]

SQL Tutorial In Urdu - Temporary Table And Table Variable (SQL Server)



-- Temporary Table
CREATE TABLE #StudentData (Id INT, Gender NVARCHAR(50))

INSERT INTO #StudentData (Id, Gender)
SELECT [StudentId], [Gender]
FROM [dbo].[Students]

SELECT COUNT(Id) AS Total
  , Gender
FROM #StudentData
GROUP BY Gender

DROP TABLE #StudentData

-- Table Variable
DECLARE @StudentData TABLE (Id INT, Gender NVARCHAR(50))

INSERT INTO @StudentData (Id, Gender)
SELECT [StudentId], [Gender]
FROM [dbo].[Students]

SELECT COUNT(Id) AS Total
  , Gender
FROM @StudentData
GROUP BY Gender

-- Real World Example (Find Total Students Pass and Fail)
SELECT COUNT(StudentId) AS Total
  ,Gender
 FROM [dbo].[Students]
 GRoup by Gender


 -- Temporary Table
 CREATE TABLE #StudentInfo (Id INT, Result NVARCHAR(50))

 INSERT INTO #StudentInfo (Id, Result)
 SELECT StudentId
  , CASE WHEN [StudentTotal] < 300 THEN 'Fail' ELSE 'Pass' END AS Result
  FROM [dbo].[StudentResults]

SELECT COUNT(Id) AS Total
  ,Result
FROM #StudentInfo
GROUP BY Result

DROP TABLE #StudentInfo

 -- Table Variable
 Declare @StudentInfo TABLE (Id INT, Result NVARCHAR(50))

 INSERT INTO @StudentInfo (Id, Result)
 SELECT StudentId
  , CASE WHEN [StudentTotal] < 300 THEN 'Fail' ELSE 'Pass' END AS Result
  FROM [dbo].[StudentResults]

SELECT COUNT(Id) AS Total
  ,Result
FROM @StudentInfo
GROUP BY Result