問題描述
編寫一條sql,查詢應該返回 200 作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回 null。
表名為employee員工表
解決思路
有資料返回資料,無資料返回null。
根據這個要求,我們可以考慮採用mysql的ifnull函式:(摘自菜鳥教程)
ifnull() 函式用於判斷第乙個表示式是否為 null,如果為 null 則返回第二個引數的值,如果不為 null 則返回第乙個引數的值
完整的sql如下:
select
ifnull( ( select salary from employee order by salary desc limit 1, 1 ), null ) as secondhighsalary
結論:類似的場景我們都可以考慮使用ifnull函式
即有結果返回結果,沒有的話返回null。
另外呢,對應查資料中第二高的等等,取排序後的某乙個數值的,解決的思路是:先orderby排序,再limit定位取值!
希望能幫到各位,占用大家時間了!
查詢第二高薪水
表名employee idsaraly 1100 2200 3300 預期結果 secondhighestsalary 200mysql select max salary as secondhighestsalary from select salary from employee where s...
第二高薪水
需求 編寫乙個 sql 查詢,獲取employee表中第二高的薪水 salary 例如上述employee表,sql查詢應該返回200作為第二高的薪水。如果不存在第二高的薪水,那麼查詢應返回null。解 select ifnull select distinct salary from employ...
MySql取第二高薪水
mysql取第二高薪水 1 select salary as secondhighestsalary from employee order by salary desc limit後面可以跟乙個或倆個引數 1 只有乙個引數時,預設取排序後最上面的一條 2 倆個引數時 i.第乙個引數代表從第幾條資料...