数据库SQL实战

来源:互联网 发布:手机淘宝怎么注销不了 编辑:程序博客网 时间:2024/06/07 02:46

题目描述

获取当前(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_nosalary1000994409

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

select emp_no, salaryfrom salarieswhere 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 salarieswhere to_date = '9999-01-01'and salary < (select max(salary) from salaries)