有关ORACLE中使用像Mysql中Limit关键字的想法

时间:2024-03-16 15:03:35

今天在牛客网做题,遇到一个问题,如下所示:

有关ORACLE中使用像Mysql中Limit关键字的想法

由于学习阶段学习的都是ORACLE中的SQL语法,并不知道Mysql中的Limit关键字,这道题网友们给出的答案是:

SELECT *  FROM  employees ORDER BY hire_date desc LIMIT 2,1;

在这里就不解释LIMIT关键字的用法了,详细可以查看https://www.cnblogs.com/cai170221/p/7122289.html这篇博客,我也是在这篇博客中学习到的。

既然这道题给出的答案是用Mysql实现的,我就想在ORACLE中实现,于是做了以下试验,可能方法愚笨,但是是自己差了两个小时资料解决的,希望帮到大家。

试验开始:

首先创建需要用到的表以及插入实验数据,建表及插入数据如下图所示:

有关ORACLE中使用像Mysql中Limit关键字的想法

插入数据是随便插入的,是数据具有随机性。现在查询表中数据如下所示,由于后面用到rownum关键字所以就在此处先显示出来。

有关ORACLE中使用像Mysql中Limit关键字的想法

可以在表中看到,根据雇佣日期hire_date进行递减排序后,rownum列也是乱序的,所以如果也想得到员工时间排名倒数第三的员工的信息,即为01-6月 -18这个日期入职的员工信息,就不能直接使用rownum这个关键字进行筛选。而在MySQl中可以可以使用LIMIT关键字选取出来。

下面就是本文选取员工时间排名倒数第三(01-6月 -18)的员工的信息的SQL语句。

有关ORACLE中使用像Mysql中Limit关键字的想法

这样就得到想要的结果了。这是我所理解的在ORACLE中用MySQL中LIMIT关键字的方法。