其他分享
首页 > 其他分享> > 找出第N高薪水

找出第N高薪水

作者:互联网

LEETCODE 1
#找出第N高的薪水
Oracle
#开窗函数
#dense_rank() 1,2,2,3,3,3,4
#rank () 1,1,1,4
#rank_number() 1,2,3,4
create FUNCTION getNthHightSalary(N in number) return number is
result NUMBER;
BEGIN
select nvl(salary,null) into result from
(select distinct salary, dense_rank() over( order by salary desc ) rn
from Employee ) t1 where rn =N) t2 ;
return result;
end;

Mysql
#使用limit 1 offset N     限定输出1条数据,跳过N条数据  

CREATE FUNCTION GETNTHHIGHTSALARY (N INT ) Return int
begin
declare M int;
set M=N-1;
return (
select ifnull(select distinct salary from employee order by salary desc limit n,1,null) as rn
);
end


创建or替代 函数
create or REPLACE function 函数名(参数 类型,参数 类型) retrun 参数 类型
begin
end

 

标签:salary,找出,薪水,number,rank,result,rn,select
来源: https://www.cnblogs.com/yubaluquba/p/16411796.html