力扣資料庫 177 第N高的薪水

2021-10-04 14:33:20 字數 1022 閱讀 4280

編寫乙個 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...