oracle 取第一条或者最后一条记录

主键id 使用的sys_guid()函数自动生成的现在有一堆记录 我需要做的是 取得最新添加的一条记录(可按照时间排序) 请问该怎样做呢?
2026年09月25日 14:58
有4个网友回答
网友(1):

如果你的表非常大,那查询最新添加的一条记录就尽量让ORACLE走主键索引。
select * from table_name where id in (select max(id) from table_name);
这样ORACLE会走索引快速扫描得出最后一条ID的值,然后通过唯一索引得出最后一条记录,这样效率较高。

网友(2):

SELECT * FROM (
           SELECT * FROM TBL_TEST T
             ORDER BY T.TIME DESC
            ) WHERE ROWNUM < 2

取rownum为1的也就是小于2的就可以

网友(3):

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视图

网友(4):

SELECT * FROM (SELECT T.*,ROWNUM RN FROM TABLE_NAME T ORDER BY ROWNUM DESC ) WHERE ROWNUM=1