运行日志有太多数据,我无法快速搜索它。现在我只想在oracle作业中获取此日志表中的最后一个日志数据。请给我帮助。最好!
答案 0 :(得分:2)
有多种选项可以返回一个sinlge行,但这些只能通过一次表扫描来完成:
SELECT *
FROM ( SELECT *
FROM log_table
ORDER BY entry_date DESC
)
WHERE ROWNUM = 1;
或
SELECT *
FROM ( SELECT l.*,
ROW_NUMBER() OVER ( ORDER BY entry_date DESC ) rn
FROM log_table l
)
WHERE rn = 1;
或(对于Oracle 12)
SELECT *
FROM log_table
ORDER BY entry_date DESC
FETCH FIRST 1 ROW ONLY;
答案 1 :(得分:0)
最好像这样使用max(date)
select * from log where date=(select max(date) from log)
它将使用索引(如果存在)
如果您没有可以使用的日期字段,这可能会更好:
select * from log where rowid=(select max(rowid) from log)