我知道有很多关于第n个最高薪水的问题,但我不明白为什么我的语法错了。编译器显示N-1);
部分有错误,但我不明白为什么这是错误的。谢谢!
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
RETURN (
# Write your MySQL query statement below.
SELECT Salary FROM Employee ORDER BY Salary DESC LIMIT 1, OFFSET N-1
);
END
答案 0 :(得分:0)
我将忽略这样一个事实:根据您的数据,您编写的查询可能无法返回您期望的结果。相反,我将专注于修复语法错误:
;
)分隔符重新定义为其他内容,以便在函数体内部 的半冒号不会被误解。 (也许你已经这样做了,但既然你没有表现出来,我就提一下)LIMIT
和OFFSET
OFFSET
参数。它似乎不像计算表达式那样。在这种情况下,您只需要在SQL语句中使用它之前计算所需的值。应用上述内容,它的外观如下:
delimiter //
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
SET N = N - 1;
RETURN (
# Write your MySQL query statement below.
SELECT Salary FROM Employee ORDER BY Salary DESC LIMIT 1 OFFSET N
);
END
//