上次在谈前N条记录取得时,给大家留了这个问题。当然,这个问题本身是非常简单的,只要先去前N条,再对结果进行逆序,最后取第一条就OK了,Easy吧
具体SQL如下:
SELECT * FROM
( SELECT * FROM
( SELECT * FROM
( SELECT EMPNO, ENAME, HIREDATE
FROM SCOTT.EMP
ORDER BY HIREDATE ASC )
WHERE ROWNUM < 6 )
ORDER BY HIREDATE DESC )
WHERE ROWNUM < 2;
执行结果:
EMPNO ENAME HIREDATE
---------- ---------- --------
7698 BLAKE 81-05-01
虽然上面的SQL可以解决这个问题,但是使用了2个Order by子句,而Order by子句是比较耗时的,相信大家都知道Cursor,用Cursor可以提高效率,这里就不多说了。
关键词标签:Oracle
相关阅读
热门文章
Oracle中使用alter table来增加,删除,修改列的语法
oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例
误删Oracle数据库实例的控制文件
为UNIX服务器设置Oracle全文检索
人气排行 oracle中使用SQL语句修改字段类型-oracle修改SQL语句案例 Oracle中使用alter table来增加,删除,修改列的语法 ORACLE SQL 判断字符串是否为数字的语句 ORACLE和SQL语法区别归纳(1) oracle grant 授权语句 ORACLE修改IP地址后如何能够使用 如何加速Oracle大批量数据处理 Oracle删除表的几种方法
查看所有0条评论>>