数据库SQL实战


题目描述

获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary
CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`));

输入描述:

输出描述:

  
emp_no salary
10009 94409

方法1:考察limit函数的理解

select emp_no, salary
from salaries
where to_date = '9999-01-01'
order by salary desc limit 1,1 #limit 1,1 表示从最后一个记录往前取一个记录


方法2:如果最高工资不止一个,则用limit 1,1 取到的就还是最高的工资,而不是第二高的工资

select emp_no, max(salary)
from salaries
where to_date = '9999-01-01'
and salary < (select max(salary) from salaries)












注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
  © 2014-2022 ITdaan.com 联系我们: