mysql查詢第二高薪水
問題描述
編寫一條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定位取值!
希望能幫到各位,佔用大家時間了!