編寫乙個 sql 查詢,獲取 employee 表中第 n 高的薪水(salary)。
±—±-------+
| id | salary |
±—±-------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
±—±-------+
例如上述 employee 表,n = 2 時,應返回第二高的薪水 200。如果不存在第 n 高的薪水,那麼查詢應返回 null。
±-----------------------+
| getnthhighestsalary(2) |
±-----------------------+
| 200 |
±-----------------------+
create
function getnthhighestsalary(n int
)returns
intbegin
set n=n-1;
return
(# write your mysql query statement below.
select ifnull(
(select
distinct salary from employee order
by salary desc
limit n,1)
,null
)as nthhighestsalary
);end
獲取第n高的薪水,可以採用limit子句
limit n子句表示查詢結果返回前n條資料
offset n表示跳過x條語句
limit y offset x 分句表示查詢結果跳過 x 條資料,讀取前 y 條資料
使用limit和offset,降序排列再返回第二條記錄可以得到第二大的值。
在本題中,要獲取第n高的薪水,所以我們limit子句中應當是n-1,1
然後用ifnull子句滿足,如果不存在返回null
力扣177 第N高的薪水
力扣177.第n高的薪水 編寫乙個 sql 查詢,獲取 employee 表中第 n 高的薪水 salary id salary 1 100 2 200 3 300 例如上述 employee 表,n 2 時,應返回第二高的薪水 200。如果不存在第 n 高的薪水,那麼查詢應返回 null。getn...
力扣資料庫 第N高的薪水
編寫乙個 sql 查詢,獲取 employee 表中第 n 高的薪水 salary id salary 1100 2200 3300 例如上述 employee 表,n 2 時,應返回第二高的薪水 200。如果不存在第 n 高的薪水,那麼查詢應返回 null。getnthhighestsalary ...
177 第N高的薪水
第n高的薪水 編寫乙個 sql 查詢,獲取 employee 表中第 n 高的薪水 salary id salary 1 100 2 200 3 300 例如上述 employee 表,n 2 時,應返回第二高的薪水 200。如果不存在第 n 高的薪水,那麼查詢應返回 null。getnthhigh...