
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了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)