SQL求第二高薪水

2021-08-21 09:00:54 字數 788 閱讀 8214

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

idsalary

1100

2200

3300

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

secondhighestsalary

200

解法一開始的思路,用max()函式查詢兩次

select

max(e.salary) as secondhighestsalary

from employee e

where e.salary < (

select

max(salary)

from employee

);

但是效率很差,做了兩次查詢

一次結果中查詢第二條

select

distinct salary from employee order

by salary desc limit 1 offset 1;

結果還是不行,distinct 似乎會使返回值為null的時候返回空,所以外層需要巢狀一層

select (select

distinct salary from employee order

by salary desc limit 1 offset 1) as secondhighestsalary;

第二高薪水

需求 編寫乙個 sql 查詢,獲取employee表中第二高的薪水 salary 例如上述employee表,sql查詢應該返回200作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回null。解 select ifnull select distinct salary from employ...

查詢第二高薪水

表名employee idsaraly 1100 2200 3300 預期結果 secondhighestsalary 200mysql select max salary as secondhighestsalary from select salary from employee where s...

mysql查詢第二高薪水

問題描述 編寫一條sql,查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null。表名為employee員工表 解決思路 有資料返回資料,無資料返回null。根據這個要求,我們可以考慮採用mysql的ifnull函式 摘自菜鳥教程 ifnull 函式用於判斷第乙個表...