[LeetCode-SQL-Easy]176. 第二高薪水

問題:

寫一個 SQL 查詢語句,獲取 Employee表中第二高的Salary 。

列名 類型
Id int
Salary int
Id Salary
1 100
2 200
3 300

例如, 上面給出的 Employee 表,查詢應(yīng)該返回 200 作為第二高的Salary。如果沒有第二高的Salary,那么查詢應(yīng)該返回 null。

SecondHighestSalary
200

分析:

這個需要一點一點的來寫,其實也不難
①先寫基本的查詢語句,并且用別名 AS 來自定義查詢出的列名。
②然后使用distinct來排除重復(fù)的元素
③用Order By 來排序,默認(rèn)是從小到大,那么我們加個 Desc
④limit 1限制我們只需要一個值,offset 1讓我們從第二個元素開始算
⑤用ifNull(expr1,expr2)函數(shù),來使查詢不到的變?yōu)閚ull。這里注意一下別名需要換一下地方。

最后是這樣的:

SELECT IFNULL(
            (SELECT DISTINCT Salary 
                            FROM Employee ORDER BY Salary desc LIMIT 1 OFFSET 1),NULL) 
                                        as SecondHighestSalary 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容