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

本文探讨了在Oracle数据库中如何实现类似MySQL的LIMIT关键字功能,以获取特定排名的数据记录。通过实例展示了使用ROWNUM关键字的局限性,并提供了一种在Oracle中获取排名倒数第三员工信息的有效方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

由于学习阶段学习的都是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中实现,于是做了以下试验,可能方法愚笨,但是是自己差了两个小时资料解决的,希望帮到大家。

试验开始:

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值