力扣--MYSQL刷題兩種方法解答題號176第二高薪資

在這裏插入圖片描述
題眼:1、返回第二高薪水
2 、如果沒有返回null

1,先寫出大的框架

SELECT salary
FROM Employee
ORDER BY salary DESC
LIMIT 1,1

2.薪水可能有重複的情況

SELECT DISTINCT salary
FROM Employee
ORDER BY salary DESC
LIMIT 1,1

3.依舊不滿足題意:沒有第二高輸出null

SELECT
    IFNULL(
           SELECT DISTINCT salary
           FROM Employee
           ORDER BY salary DESC
           LIMIT 1,1)
     ,NULL) AS SecondHightSalary
``

在這裏插入圖片描述
方法二max函數
找出比最大值小的最大值就是第二大值

SELECT MAX(Salary)
FROM Employee
WHERE Salary<(SELECT MAX(Salary)
              FROM Employee)

知識點小結
1. IFNULL函數
它接受兩個參數,如果不是NULL,則返回第一個參數。 否則,IFNULL函數返回第二個參數。
兩個參數可以是文字值或表達式
語法

     IFNULL(字段1,字段2

如果字段1不爲null返回字段1,否則返回字段2
2.關鍵字distinct
使用關鍵字可以去除重複的字段
語法:

SELECT DISTINCT(列名1,列名2

distinct一般與列名連用,當有多個列時寫在最前面
在這裏插入圖片描述

SELECT DISTINCT Price,SqFt
FROM house_price;

在這裏插入圖片描述







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章