首页 > 其他 > 详细

20.4.25 第二高的薪水 简单 176

时间:2020-04-25 10:50:07      阅读:44      评论:0      收藏:0      [点我收藏+]

题目

编写一个 SQL 查询,获取 Employee?表中第二高的薪水(Salary)?。

+----+--------+
| Id | Salary |
+----+--------+
| 1 | 100 |
| 2 | 200 |
| 3 | 300 |
+----+--------+
例如上述?Employee?表,SQL查询应该返回?200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。

+---------------------+
| SecondHighestSalary |
+---------------------+
| 200 |
+---------------------+

解题思路

  1. 第一种是先把最大的值选出来,作为WHERE条件除去它构建新表,再选出新表中最大的值
  2. 第二种降序排序后选第二个值,用DISTINCT解决有相同值的问题。

代码

# Write your MySQL query statement below

//第一种
SELECT max(Salary) as SecondHighestSalary
FROM employee
WHERE Salary<(
    SELECT max(Salary)
    FROM employee)


//第二种
SELECT (
    SELECT DISTINCT Salary
    FROM Employee
    ORDER BY Salary desc
    LIMIT 1,1)
AS SecondHighestSalary

20.4.25 第二高的薪水 简单 176

原文:https://www.cnblogs.com/wasi-991017/p/12771647.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!