In Below Post I have explained 2 way to get nth maximum salary in SQL Server.
Create Temperary Table
Create Temperary Table
create table
#Employee
(
Id int Identity(1,1),
Name varchar(10) not null,
salary numeric(18,2) not null,
Email varchar(50)
)
insert into #Employee (Name,salary,Email)
values('Manish',1000,'ak@gmail.com'),
('Anill',2000,'Anill@gmail.com'),
('Sunil',1200,'Sunil@gmail.com'),
('Ram',1700,'ram@gmail.com'),
('Arun',1800,'arun@gmail.com'),
('Neha',2000,'Neha@gmail.com'),
('Vivek',2100,'Vivek@gmail.com')
---Nth highest salary using
correlated subquery
DECLARE @N int=2
SELECT name, salary ,Email
FROM #Employee e1
WHERE @N-1 = (SELECT COUNT(DISTINCT salary) FROM #Employee e2
WHERE e2.salary > e1.salary)
--Nth highest salary in SQL SERVER
using TOP keyword
SELECT TOP 1 salary
FROM (
SELECT DISTINCT TOP 2 salary
FROM #Employee
ORDER BY salary DESC
) AS temp
ORDER BY salary
No comments:
Post a Comment