SELECT EmpId, Salary
FROM(
Select EmpId, Salary, ROW_NUMBER() OVER(ORDER BY Salary Desc) AS Salary_Order
FROM Employee
) results
WHERE results. Salary_Order = 1 ;
SELECT EmpId, Salary
FROM(
Select EmpId, Salary, ROW_NUMBER() OVER(ORDER BY Salary Desc) AS Salary_Order
FROM Employee
) results
WHERE results. Salary_Order = 2 ;
SELECT EmpId, Salary
FROM(
Select EmpId, Salary, ROW_NUMBER() OVER(ORDER BY Salary Desc) AS Salary_Order
FROM Employee
) results
WHERE results. Salary_Order = 3 ;
SELECT MAX(salary)
FROM Employee
WHERE salary NOT IN ( SELECT Max(salary) FROM Employee);
Type 2 : Find the 2nd highest employee salary
SELECT MAX(salary)
From Employee
WHERE salary < ( SELECT Max(salary) FROM Employee);
Type 3 : Find the 2nd highest employee salary
SELECT salary
FROM (
SELECT salary FROM Employee ORDER BY salary DESC LIMIT 2
) AS Emp ORDER BY salary LIMIT 1;