找出第N高薪水

打印 上一主题 下一主题

主题 520|帖子 520|积分 1560

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
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

八卦阵

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表