力扣--MYSQL刷题两种方法解答题号176第二高薪资

2 篇文章 0 订阅
2 篇文章 0 订阅
本文介绍了在LeetCode上解决第176题‘第二高薪资’的两种方法。第一种方法通过处理重复薪水,第二种方法利用MAX函数找到次高薪资。还总结了IFNULL函数的作用和DISTINCT关键字的用法。
摘要由CSDN通过智能技术生成

在这里插入图片描述
题眼: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;

在这里插入图片描述







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值