您的位置:首页 > 数据库

数据库SQL实战

2017-08-04 17:10 155 查看


题目描述

获取当前(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_nosalary
1000994409
方法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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: