學習記錄:Leetcode176第二高的薪水
176第二高的薪水
撰寫一個 SQL 查詢,獲取 Employee 表中第二高的薪水(Salary);如果不存在第二高的薪水,那么查詢應回傳 null,
思路:查詢第二高可以使用limit 1,1;或者使用limit 1 offset 1;這兩句的含義為跳過第一個(默認索引從0開始)查詢1個;當然第二高還需要order by columns desc對資料進行降序;考慮不存在第二高時,可以使用ifnull函式,完整代碼如下:
select ifnull((select distinct Salary from Employee order by Salary desc limit 1,1),null) as SecondHighestSalary 或
select ifnull((select distinct Salary from Employee order by Salary desc limit 1 offset 1),null) as SecondHighestSalary
相關知識記錄:
- limit:限制查詢結果回傳的數量,limit i,n 其中i為查詢結果的索引值,默認從0開始,n為查詢結果回傳的數量;
- limit n offset i:跳過i個回傳n個;
- distinct:回傳唯一不同的值;
- desc 降序,asc升序;
- ifnull:運算式ifnull(exp,default),當exp為null時,回傳default;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/302021.html
標籤:其他
上一篇:MySQL 中 bigint、int、mediumint、smallint、tinyint 有符號和無符號的取值范圍
