如何从表中获取最新记录?
例如,该表具有以下标识符:
1
2
7
3
10
5
最后一个条目在这里,id 为 10。
在表达式的已知组件中,这是表的名称。同时,我们的意思是在第一列中需要搜索,即主键,存储标识符。
每个表的 ID 由触发器创建,当插入记录时,触发器会为该记录生成一个 ID。带有标识符的列的名称是不同的并且事先是未知的,因此查询根本不应该与列的名称绑定。
标识符是由只有CYCLE_FLAG=N.
这是我使用的(我只更改表名):
select a.* from (
select rownum rnum, MESSAGES.*
from MESSAGES
) a
where rnum=(select count(1) from MESSAGES);
该示例有效,我返回一行,有时是表中具有最新 Id 的记录,在某些表中,此查询不返回最后一条记录,好像表的第一个字段没有按顺序排序.
如果只有第一列包含标识符,那么您需要这样做:
对于 < 12.1 的版本(在 11.2.0.4 上尝试过),请尝试以下操作:
结果:
PS 确保在序列生成器中使用 NOCYCLE 选项。