数据库查询-编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary)
2018-09-14 17:36
78 查看
解题思路:
找出第二高的薪水,先找出表里的最大值e1.Salary,再找出表里的最大值e2.Salary,两者进行比较,e1.Salary<e2.Salary,找出的e1.Salary即是第二高的薪水
[code]select max(Salary) as SecondHighestSalary from Employee e1 where (select max(Salary) from Employee e2 where e1.Salary<e2.Salary)
另外一种简洁的方法
[code]select max(Salary) as SecondHighestSalary from Employee where Salary<(select max(Salary) from Employee)
第三种方法
[code]select IFNULL((select Distinct Salary from Employee order by Salary DESC limit 1,1),null) as SecondHighestSalary
阅读更多
相关文章推荐
- jsp页面获取参数 执行sql查询数据库
- 如何编写更好的SQL查询:终极指南-第二部分
- sql查询一个数据库中所有的表
- 如何编写更好的SQL查询:终极指南-第二部分
- SQL如何查询一个数据库中的所有表?
- 数据库SQL中的分钟表示应该使用MI(非常重要的一个问题,以前一直认为和java中一样,用mm就可以表示);校对规则(查询时区分大小写)
- SQLServer如何用T—SQL命令查询一个数据库中有哪些表
- 怎么用sql语句查询一个数据库有多少张表
- PHP获取生成一个页面的数据库查询次数
- 一个最简单的使用Entity Framework 查询SQL 数据库的例子
- 利用SQL语句查询一个数据库中的所有表
- 编写一个Java程序,在程序中包含一个Employee类,Employee类包含name、age、salary三个成员变量
- 使用 SQL 语句从数据库一个表中随机获取一些数据
- SQL语句查询一个数据库中的所有表
- 【数据库SQL实战】获取所有部门当前manager的当前薪水情况
- 使用SQL语句从数据库一个表中随机获取数据
- 如何编写更好的SQL查询:终极指南-第二部分
- Oracle中用sql查询获取数据库的所有触发器,所有存储过程,所有视图,所有表
- 数据库存储过程中定义一个变量,通过sql语句在数据表中获取这个变量值的方法。
- 如何编写更好的SQL查询:终极指南-第二部分