文巾解题 176. 第二高的薪水
生活随笔
收集整理的這篇文章主要介紹了
文巾解题 176. 第二高的薪水
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 題目描述
2 解題思路
2.1 用最基礎的SQL操作實現
SELECT MAX(Salary) as SecondHighestSalary FROM ( SELECT SalaryFROM Employee eWHERE e.Salary <> (SELECT MAX(Salary)FROM Employee e1)) as TOTAL從內循環到外循環的順序:
找到最高的薪水——把最高的薪水去掉——在剩下的薪水里面找最高的薪水
2.2 LIMIT子句+子查詢
將不同的薪資按降序排序,然后使用?LIMIT?子句獲得第二高的薪資。
LIMIT子句用法見數據庫筆記: SQL_劉文巾的博客-CSDN博客?3.9.1小節
SELECT DISTINCTSalary AS SecondHighestSalary FROMEmployee ORDER BY Salary DESC LIMIT 1 OFFSET 1?SQL 排序見數據庫筆記: SQL_劉文巾的博客-CSDN博客?3.8小節
但是!上面的SQL會報錯!!
為表格中可能只有一項記錄。為了克服這個問題,我們可以將其作為一個子查詢。那么如果不存在的話,外查詢出來的結果是NULL。
SELECT(SELECT DISTINCTSalaryFROMEmployeeORDER BY Salary DESCLIMIT 1 OFFSET 1) AS SecondHighestSalary2.3 SQL+IFNULL
解決 “NULL” 問題的另一種方法是使用 “IFNULL” 函數
IFNULL使用方法見數據庫筆記: SQL_劉文巾的博客-CSDN博客?3.9.4節
SELECTIFNULL((SELECT DISTINCT SalaryFROM EmployeeORDER BY Salary DESCLIMIT 1 OFFSET 1),NULL) AS SecondHighestSalary總結
以上是生活随笔為你收集整理的文巾解题 176. 第二高的薪水的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文巾解题 175. 组合两个表
- 下一篇: 文巾解题 177. 第N高的薪水