- 题目描述
写一个sql查询语言,得出employee表中排名第N高的salary,如果不存在,则返回null,例如下表中,当n=2时,排名第二高的salary为200。
- 题目解答
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
set N=N-1;
RETURN (
# Write your MySQL query statement below.
select ifnull((select distinct Salary from Employee order by Salary desc limit N,1),null)
);
END
上述代码若是在较低版本的mysql中运行,则会报错,由于低版本的mysql中limit后不能跟变量。