題眼: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;