八卦阵 发表于 2022-8-11 21:09:48

找出第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 ) t1wherern =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
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 找出第N高薪水