1 题目描述

2 解题思路

2.1 用最基础的SQL操作实现

SELECT MAX(Salary) as  SecondHighestSalary
FROM  ( SELECT SalaryFROM Employee eWHERE e.Salary <> (SELECT MAX(Salary)FROM Employee e1)) as TOTAL

从内循环到外循环的顺序:

找到最高的薪水——把最高的薪水去掉——在剩下的薪水里面找最高的薪水

2.2 LIMIT子句+子查询

将不同的薪资按降序排序,然后使用 LIMIT 子句获得第二高的薪资。

LIMIT子句用法见数据库笔记: SQL_刘文巾的博客-CSDN博客 3.9.1小节

SELECT DISTINCTSalary AS SecondHighestSalary
FROMEmployee
ORDER BY Salary DESC
LIMIT 1 OFFSET 1

SQL 排序见数据库笔记: SQL_刘文巾的博客-CSDN博客 3.8小节

但是!上面的SQL会报错!!

为表格中可能只有一项记录。为了克服这个问题,我们可以将其作为一个子查询。那么如果不存在的话,外查询出来的结果是NULL。

SELECT(SELECT DISTINCTSalaryFROMEmployeeORDER BY Salary DESCLIMIT 1 OFFSET 1) AS SecondHighestSalary

2.3 SQL+IFNULL

解决 “NULL” 问题的另一种方法是使用 “IFNULL” 函数

IFNULL使用方法见数据库笔记: SQL_刘文巾的博客-CSDN博客 3.9.4节


SELECTIFNULL((SELECT DISTINCT SalaryFROM EmployeeORDER BY Salary DESCLIMIT 1 OFFSET 1),NULL) AS SecondHighestSalary

文巾解题 176. 第二高的薪水相关推荐

  1. LeetCode数据库 176. 第二高的薪水

    176. 第二高的薪水 SELECT IFNULL( # 没有返回NULL(SELECT DISTINCT(Salary) FROM Employee # 选取不同的薪资ORDER BY Salary ...

  2. 176. 第二高的薪水(SQL中的ifnull函数和limt1,1的使用)

    176. 第二高的薪水 # Write your MySQL query statement below Select ifnull((SELECT distinct salaryfrom Emplo ...

  3. leecode:176. 第二高的薪水

    题目描述 Employee 表: +-------------+------+ | Column Name | Type | +-------------+------+ | id | int | | ...

  4. 【LeetCode】176.第二高的薪水

    176.第二高的薪水 编写一个 SQL 查询语句,获取Employee表中第二高的薪水(Salary). 用到的表和数据SQL: Create table If Not Exists Employee ...

  5. LeetCode 176 第二高的薪水

    SQL架构 Employee 表: +-------------+------+ | Column Name | Type | +-------------+------+ | id | int | ...

  6. 【领扣leetcode数据库】176.第二高的薪水

    题目描述 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) . +----+--------+ | Id | Salary | +----+--------+ | 1 ...

  7. 176. 第二高的薪水

    编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) . +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 ...

  8. LeetCode 176. 第二高的薪水

    题目 编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) . +----+--------+ | Id | Salary | +----+--------+ | 1 | ...

  9. 【leetcode/力扣】176.第二高的薪水

    文章目录 题目 一.大概思路 二.代码实现 总结 题目 一.大概思路 查第二高的薪水,一般看这个题目就觉得ORDER BY 然后DESC从高高低就行了,然后LIMIT 1 OFFSET 1 就能查到第 ...

最新文章

  1. 百万级访问量网站的技术准备工作[转帖]
  2. 「日常训练」 Mike and Fun (CFR305D2B)
  3. 11 FI配置-财务会计-定义分类账和货币类型的设置
  4. 使用C#登录带验证码的网站
  5. 微信小程序项目源代码SSM英语学习平台
  6. 《Android框架揭秘》——2.2节搭建Android平台编译环境
  7. 分享CFA二级优质复习方法!
  8. 操作系统-信号量机制;用信号量机制实现进程互斥、同步、前驱关系
  9. 一阶电路暂态响应的结果分析。_第七讲 线性电路的过渡过程分析一
  10. 如何挑选无线路由器?
  11. Object C基础
  12. '与或非' 和 逻辑 '与或' 运算
  13. Star CCM+ 案例 - 旋风分离器 (cyclone separator)-2 生成网格
  14. C语言实现简单的电梯控制系统
  15. 使用PyTorch Geometric构建自己的图数据集
  16. 问题七:vue+ts The left-hand side of an assignment expression may not be an optional property?
  17. e-人事管理系统-招聘管理-人才库
  18. 电商用户行为数据分析实战(MySQL +PowerBI)
  19. 墨水屏桌牌--会议室新应用
  20. 【二阶魔方还原】第十次OJ的总结

热门文章

  1. HDU 2836 (离散化DP+区间优化)
  2. 检查单 2015-05-15-01
  3. PAT甲级1072 Gas Station (30 分):[C++题解]dijkstra算法、最短路
  4. 李永乐线性代数手写笔记-特征值和特征向量
  5. ubuntu 使用ccache加快linux内核编译速度
  6. 软件生成目录没有图框_图纸目录和编号
  7. python才不会从入门到放弃_一步一步理解 python web 框架,才不会从入门到放弃 -- 启程出发...
  8. android 固定大小数组,android-Kotlin中的最大数组大小
  9. java js 截取字符串,js截取字符串的三种方法
  10. python监听udp端口_python检测远程udp端口是否打开