oracle 取第一条或者最后一条记录
发布网友
发布时间:2022-04-25 12:17
我来回答
共4个回答
热心网友
时间:2022-04-09 13:18
如果你的表非常大,那查询最新添加的一条记录就尽量让ORACLE走主键索引。
select * from table_name where id in (select max(id) from table_name);
这样ORACLE会走索引快速扫描得出最后一条ID的值,然后通过唯一索引得出最后一条记录,这样效率较高。
热心网友
时间:2022-04-09 14:36
SELECT * FROM (
SELECT * FROM TBL_TEST T
ORDER BY T.TIME DESC
) WHERE ROWNUM < 2
取rownum为1的也就是小于2的就可以
追问select x.id from(select s.id ,rownum num from(select t.id from table_name t order by t.date)s)x where x.num=(select count(id)from table_name)
刚才这样写试了下暂时还没发现有什么问题,还是谢谢你们了
热心网友
时间:2022-04-09 16:10
1、要求很精确地话只能用程序实现了。
2、也可以使用oracle的伪劣ORA_ROWSCN。
select * from (select t.*,ORA_ROWSCN oscn from t1 t ) where oscn =(select max(ora_rowscn) from t1) ;
3、只查最近的,可以查询flashback_transaction_query视图
热心网友
时间:2022-04-09 18:02
SELECT * FROM (SELECT T.*,ROWNUM RN FROM TABLE_NAME T ORDER BY ROWNUM DESC ) WHERE ROWNUM=1