Вопрос:
Напишите запрос SQL, чтобы получить n-ю самую высокую зарплату из таблицы Employee.
+----+--------+
| Id | Salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
Например, с учетом приведенной выше таблицы Employee,n-й наивысший оклад, где n = 2, равен 200. Если n-го наивысшего оклада нет, запрос должен вернуть ноль.
+------------------------+
| getNthHighestSalary(2) |
+------------------------+
| 200 |
+------------------------+
Мой запрос:
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
RETURN(
SELECT NT.Salary as CONCAT('getNthHighestSalary','(',N,')')
FROM (SET @i := 0;
SELECT (@i := @i + 1) as Index, Id, Salary
FROM Employee
ORDER BY Salary DESC) AS NT
WHERE NT.Index = N);
END
Ошибка:
Line 5: SyntaxError: near '('getNthHighestSalary','(',N,')')
FROM (SET @i := 0;
SELECT (@i :='