力扣题目-177. 第N高的薪水
仅作学习,不作他用
题干
表: Employee
| Column Name | Type | 
|---|---|
| id | int | 
| salary | int | 
在 SQL 中,id 是该表的主键。
 该表的每一行都包含有关员工工资的信息。
查询 Employee 表中第 n 高的工资。如果没有第 n 个最高工资,查询结果应该为 null 。
查询结果格式如下所示。
示例 1:
输入:
 Employee table:
| id | salary | 
|---|---|
| 1 | 100 | 
| 2 | 200 | 
| 3 | 300 | 
n = 2
 输出:
select getNthHighestSalary(2) result: 200    
示例 2:
输入:
 Employee 表:
| id | salary | 
|---|---|
| 1 | 100 | 
n = 2
输出:
select getNthHighestSalary(2) result: null
答案
官方答案
暂无
其他有意思的答案
我的答案
2024年2月18日
第一次回答
 第一次尝试:先尝试用sql语句实现,然后再将语句放入自定义函数;发现当到出现两个100的用例时,语句报错
 第二次尝试:再原先的基础上新增DISTINCT ,这是因为我一开始理解有误了。应该是薪水,而我理解的时候没有排除人数的干扰。
 第三次尝试:新增了READS SQL DATA
CREATE FUNCTION getNthHighestSalary ( N INT ) 
RETURNS INT 
READS SQL DATA 
BEGINDECLARE M INT;set M= N-1;RETURN (SELECT DISTINCT  salary FROM employee ORDER BY salary DESC LIMIT  M,1);
END