【发布时间】:2019-12-16 20:17:05
【问题描述】:
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
RETURN (
SELECT DISTINCT(Salary)
FROM Employee
ORDER BY
(case
when N<=0 then Salary END DESC LIMIT 0,1,
when N >0 then Salary END DESC LIMIT N-1,1)
);
END
我想按订单使用 case 语句
当 N
N>0 然后用 LIMIT N-1,1 描述
【问题讨论】:
-
你只能在一个函数中返回 1 个值 - 你到底想做什么?
-
找到第 N 个最高薪水,但是当 N 小于 0 时,它会给出负数错误,然后我尝试使用 case when
-
也许你应该返回光标!
-
@Nyamkhuu Buyanjargal 我们离需要光标还有一段距离。
标签: mysql