177. 第N高的薪水

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等大厂!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值