首页 > 解决方案 > oracle 表中的最后一个条目

问题描述

我想在 oracle 中创建一个查询,它将显示我创建的表中的最后一个条目,我尝试通过 max 和 through date,但是在 max 之后,查询不准确,并且到期日期显示所有日期,我将不胜感激您的帮助)

日期之后

select seal_number 
  from SEC_OBJECT_SEALING 
 where SEALING_OBJECT = :P26_OBJECT_UNPLUG 
   and (to_date(data ,'dd.mm.yyyy hh24:mi:ss') = 
       (select max(to_date(data ,'dd.mm.yyyy hh24:mi:ss')) from SEC_OBJECT_SEALING)

通过最大值

select seal_number 
  from SEC_OBJECT_SEALING 
 where SEALING_OBJECT = :P26_OBJECT_UNPLUG 
   and id = (select max(id) from SEC_OBJECT_SEALING)

标签: sqloracleoracle11g

解决方案


在 Oracle 12+ 中,使用fetch

select seal_number
from SEC_OBJECT_SEALING
where SEALING_OBJECT = :P26_OBJECT_UNPLUG 
order by data desc
fetch first 1 row only;

在早期版本中,使用子查询:

select sos.*
from (select seal_number
      from SEC_OBJECT_SEALING
      where SEALING_OBJECT = :P26_OBJECT_UNPLUG 
      order by data desc
     ) sos
where rownum = 1;

推荐阅读