Here I am writing SQL query to find nth salary without using top or max keywords.
  1. SELECT * FROM (
  2. SELECT ROW_NUMBER() OVER (ORDER BY SALARY DESC) AS rownumber,Salary
  3. FROM Employee )
  4. AS foo
  5. WHERE rownumber = n
Example:
  1. SELECT * FROM (
  2. SELECT ROW_NUMBER() OVER (ORDER BY SALARY DESC) AS rownumber,Salary
  3. FROM Employee )
  4. AS foo
  5. WHERE rownumber = 5
The above query will show 5th highest salary from Employee table.
Here is a free eBook, SQL Queries for Beginners