Nth Highest Salary

This is the most popular interview question. How to find Nth Highest Salary of the employee.
  1. SELECT * FROM
  2. (
  3.    SELECT ROW_NUMBER () OVER (ORDER BY emp_sal DESC) row_number, 
  4.    empId,emp_salFROM emp
  5. )  a
  6.    WHERE row_number = N
  7. GO  
Script
  1. CREATE DATABASE Test
  2. GO
  3. USE Test
  4. GO
  5. IF OBJECT_ID ('dbo.emp'IS NOT NULL
  6. DROP TABLE dbo.emp
  7. GO
  8. CREATE TABLE dbo.emp
  9. (
  10.    empId INT NOT NULL,
  11.    emp_Name VARCHAR (15),
  12.    emp_sal INT
  13. )
  14. GO
  15. INSERT INTO dbo.emp
  16. (
  17.    empId, emp_Name, emp_sal)
  18.    VALUES (101, 'ABC', 50000)
  19.    GO
  20.    INSERT INTO dbo.emp(empId, emp_Name, emp_sal)
  21.    VALUES (101, 'CFR', 90000)
  22.    GO
  23.    INSERT INTO dbo.emp (empId, emp_Name, emp_sal)
  24.    VALUES (101, 'DFF', 70000)
  25.    GO
  26.    INSERT INTO dbo.emp (empId, emp_Name, emp_sal)
  27.    VALUES (101, 'GDD', 80000)
  28.    GO
  29.    INSERT INTO dbo.emp (empId, emp_Name, emp_sal)
  30.    VALUES (101, 'DFV', 95000)
  31.    GO
  32. SELECT * FROM
  33. (
  34.    SELECT ROW_NUMBER () OVER (ORDER BY emp_sal DESC) row_number,
  35.    empId,emp_sal
  36.    FROM emp
  37. )a
  38. WHERE row_number = 4
  39. GO