177. 第N高的薪水
方法一与二的区别:
limit m,n;
m代表从m+1条记录行开始检索,n代表取出n条数据。(m可设为0)
如:SELECT * FROM 表名 limit 6,5;
表示:从第7条记录行开始算,取出5条数据
而limit m offset n 只是换了一下位置;
故:是两种方式对比只是数字换了下位置而已,这样的话两种方式的意思是等同的。
即 limit n,1等于 limit 1offset n
方法一:
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
set N=N-1;
if N<0 THEN
RETURN NULL;
else
RETURN (
# Write your MySQL query statement below.
select ifnull( (select distinct Salary from Employee
order by Salary desc limit 1 offset N ),null)
as getNthHighestSalary
);
END if;
END
方法二:
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
SET N = N-1;
IF N < 0 THEN
RETURN NULL;
ELSE
RETURN (
# Write your MySQL query statement below.
SELECT IFNULL( ( SELECT DISTINCT Salary FROM Employee
ORDER BY Salary DESC LIMIT N, 1), NULL)
AS getNthHighestSalary
);
END IF;
END
学渣进阶的第三天(175没有写博客),走向向BAT等大厂!!!