sql语句如何在数据库中按照降序读出后5条记录

sql语句如何在数据库中按照降序读出后5条记录,第1张

sql语句实现降序取出后五条记录的方法

1、sql server中的实现

select top 5 * from 表 where

id not in (select top 5 id from 表)

2、oracle中的实现:

SELECT *

FROM (SELECT a.*, ROWNUM rn

FROM torderdetail a)

WHERE rn >= 5 AND rn <= 10

这条语句即是输出Oracle查询第5到第10条纪录,这里之所以用rownum rn,是把rownum转成实例,因为rownum本身只能用 <=的比较方式,只有转成实列,这样就可做 >=的比较了。

1、如果是一张不停插入,但是不做修改的表,那么恭喜,碰到最简单的情况了,可以通过查找rowid最大的5条记录,就是。

2、如果不是第一种情况那么,提供以下几种办法可以尝试:

a、查找最近用过的sql,你可以通过v$sql视图以last_active_time为关键字查看。

b、使用快照闪回查询。(成功可能不大,除非你的表改写量比较低,不然两个scn之间可能会有很多的数据,比较难实现。)

c、使用logminer从archivelog中读取信息。(肯定可以成功,不过耗时嘛......)

其中值得注意的是方法b是需要你的数据库在归档模式才能用的,方法c最好是在归档模式,不然只好分析你的redolog了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9963496.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存