23

这给了我一行(第一行):

SELECT BLA
FROM BLA
WHERE BLA
AND ROWNUM < 2

但是,我想要最近的日期;我可以这样制作第一行:

SELECT BLA
FROM BLA
WHERE BLA
ORDER BY FINALDATE DESC

但是,当我尝试混合这两个部分胜利时,它不起作用 - 显然“仅选择第一行”逻辑在 order by 之前触发然后 order by 随后被忽略。

4

3 回答 3

46

在 12c 中,这是新的方式:

select bla
  from bla
 where bla
 order by finaldate desc
 fetch first 1 rows only; 

这多好啊!

于 2016-03-03T14:02:39.623 回答
26

这个问题类似于如何限制 Oracle 查询在排序后返回的行数?.

它讨论了如何在 oracle 数据库上实现 MySQL 限制,根据您的标签和帖子来判断您正在使用什么。

相关部分是:

select *
from  
  ( select * 
  from emp 
  order by sal desc ) 
  where ROWNUM <= 5;
于 2012-08-15T22:20:31.610 回答
3

您可以嵌套查询:

select * from (
    select bla
    from bla
    where bla
    order by finaldate desc
)
where rownum < 2
于 2012-08-15T22:21:51.970 回答