50+SQL_Interview questions and Answers
50+SQL_Interview questions and Answers
4. Factorial of a number
DECLARE @Fact INT = 5, @Result INT = 1;
WHILE @Fact > 1
BEGIN
SET @Result = @Result * @Fact;
SET @Fact = @Fact - 1;
END
SELECT @Result AS Factorial;
5. Fibonacci series
DECLARE @a INT = 0, @b INT = 1, @n INT = 10, @i INT = 0;
WHILE @i < @n
BEGIN
PRINT @a;
DECLARE @temp INT = @a + @b;
SET @a = @b;
Sai Reddy
saireddy-dotnetfs
SET @b = @temp;
SET @i = @i + 1;
END
6. Reverse a number
DECLARE @Num INT = 1234, @Rev INT = 0;
WHILE @Num > 0
BEGIN
SET @Rev = @Rev * 10 + @Num % 10;
SET @Num = @Num / 10;
END
SELECT @Rev AS ReversedNumber;
9. Highest salary
SELECT MAX(Salary) AS HighestSalary FROM Employees;
Sai Reddy
saireddy-dotnetfs
SELECT Salary FROM CTE WHERE Rank = 3; change 3 to N
Sai Reddy
saireddy-dotnetfs
24. Names containing 'a'
SELECT * FROM Employees WHERE Name LIKE '%a%';
Sai Reddy
saireddy-dotnetfs
37. Calculate age
SELECT Name, DATEDIFF(YEAR, BirthDate, GETDATE()) AS Age FROM Employees;
Sai Reddy
saireddy-dotnetfs
47. Print 1 to 100 using CTE
WITH Numbers AS (
SELECT 1 AS num
UNION ALL
SELECT num + 1 FROM Numbers WHERE num < 100
)
SELECT * FROM Numbers OPTION (MAXRECURSION 0);
Sai Reddy
saireddy-dotnetfs
56. PIVOT: subject marks to columns
SELECT * FROM (
SELECT StudentId, Subject, Marks FROM Marks
) src
PIVOT (
MAX(Marks) FOR Subject IN ([Maths], [Science], [English])
) AS pvt;
57. UNPIVOT: columns to rows
SELECT StudentId, Subject, Marks
FROM Marks
UNPIVOT (
Marks FOR Subject IN ([Maths], [Science], [English])
) AS unpvt;
58. Dynamic SQL filter
DECLARE @SQL NVARCHAR(MAX), @Col NVARCHAR(100) = 'Name';
SET @SQL = 'SELECT * FROM Employees WHERE ' + QUOTENAME(@Col) + ' LIKE ''%a%''';
EXEC sp_executesql @SQL;
Sai Reddy
saireddy-dotnetfs