sql4

作者: xmgh1024 | 来源:发表于2020-02-04 15:29 被阅读0次

题目描述

获取当前(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`));

题目分析:

首先,这是一个单表查询,查询的结果也是单条记录。

其次,看到薪水是第二多,没有办法用MAX()函数,但是可以先用order by

对salary进行排序,再用limit或者limit offset 进行截取。

这里需要注意的是limit x,y 和 limit x offset y的用法

limit x,y指的是从第y+1行开始(包括第y+1行)的x条数据。

第一个数字是检索的行数,第二个数字是指从哪儿开始。

limit x offset y也是同样的用法。

故参考答案为:

    select emp_no,salary from salaries 

    where to_date='9999-01-01' 

    order by salary desc limit 1,1;

相关文章

网友评论

      本文标题:sql4

      本文链接:https://www.haomeiwen.com/subject/ajirxhtx.html