LIMIT n, m or
LIMIT m OFFSET n
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT BEGIN declare M int set M = N-1 RETURN ( SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT M, 1 ); END
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT BEGIN RETURN ( select distinct e1.salary from Employee e1 where N-1 = (select count(distinct e2.Salary) from Employee e2 where e1.Salary < e2.Salary) ); END
- distinct is a must, in case multiple people have the same amount of salary, the result have to be just salary and distinct.
- MySQL provides a LIMIT clause that is used to specify the number of records to return. Please refer to LIMIT.