您的位置:首页 > 职场人生

sql 面试题 函数 求工资第n多的工资

2016-09-17 13:34 288 查看
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
RETURN (
select e1.Salary from
(select distinct Salary fromEmployee) e1
where
(
select count(*) from
(select distinct Salary from Employee) e2
where e2.Salary>e1.Salary)=N-1
);
END


select count(*) from
(select distinct Salary from Employee) e2
where e2.Salary>e1.Salary)


相当于 遍历e1里的所有的salary

然后列出e2里大于e1中每一个salary的所有记录

当N-1=0时 e1.salary是最大值

当N-1=1时 e1.salary是第二大值

。。。。。。

自行脑补测试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐