資料庫題目 第二高的薪水

2021-10-22 14:16:46 字數 1138 閱讀 6930

編寫乙個 sql 查詢,獲取 employee 表中第二高的薪水(salary) 。

例如上述 employee 表,sql查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null。

方法一:使用子查詢和 limit 子句

演算法將不同的薪資按降序排序,然後使用 limit 子句獲得第二高的薪資。

select

distinct

salary as secondhighestsalary

from

employee

order

by salary desc

limit

1offset

1

然而,如果沒有這樣的第二最高工資,這個解決方案將被判斷為 「錯誤答案」,因為本表可能只有一項記錄。為了克服這個問題,我們可以將其作為臨時表。

select

(select

distinct

salary

from

employee

order

by salary desc

limit

1offset1)

as secondhighestsalary

;

方法二:使用 ifnull 和 limit 子句解決 「null」 問題的另一種方法是使用 「ifnull」 函式,如下所示。

select

ifnull(

(select

distinct salary

from employee

order

by salary desc

limit

1offset1)

,null

)as secondhighestsalary

力扣資料庫題目176第二高的薪水

力扣資料庫題目176第二高的薪水 編寫乙個 sql 查詢,獲取 employee 表中第二高的薪水 salary id salary 1 100 2 200 3 300 例如上述 employee 表,sql查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null。題...

力扣資料庫 176 第二高的薪水

create table ifnot exists employee id int salary int truncate table employee insert into employee id,salary values 1 100 insert into employee id,salar...

第二高的薪水

第二高的薪水 編寫乙個 sql 查詢,獲取employee表中第二高的薪水 salary id salary 1 100 2 200 3 300 例如上述employee表,sql查詢應該返回200作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回null。secondhighestsalar...