✌✌✌古人有云,好记性不如烂笔头,千里之行,始于足下,每日千行代码必不可少,每日总结写一写,目标大厂,满怀希望便会所向披靡,哈哈哈!!!✌✌✌

MySql 176.第二高的薪水_java

1、题目描述

MySql 176.第二高的薪水_java_02

2、解答思路

> 首先将Salary列进行降序,然后用distinct去重,防止有多个薪水一样
> 让后题目要的是第二大的薪水,所以用offset跳过第一条查询结果
> 然后用limit选取第一条查询结果
> 但是这样会有问题,如果表中不存在第二大会返回空表,但题目要求NULL
> 所以再用select语句查询一次刚才的结果,如果存在正常显示
> 如果是空表则返回NULL

3、MySql语言

select
(select distinct Salary as SecondHighestSalary
from Employee
order by Salary desc
limit 1 offset 1)
as SecondHighestSalary