这只给我一行(第一行):
SELECT BLA
FROM BLA
WHERE BLA
AND ROWNUM < 2
但是,我想要最近的日期值;我可以这样做第一行:
SELECT BLA
FROM BLA
WHERE BLA
ORDER BY FINALDATE DESC
当我尝试混合两个部分胜利时,它不起作用 - 显然“选择第一行”逻辑在顺序之前触发,然后顺序是后来被忽略了。
答案 0 :(得分:25)
在12c中,这是新的方式:
select bla
from bla
where bla
order by finaldate desc
fetch first 1 rows only;
多好啊!
答案 1 :(得分:22)
此问题与How do I limit the number of rows returned by an Oracle query after ordering?类似。
它讨论了如何在oracle数据库上实现MySQL限制,该数据库根据您的标记进行判断,并且帖子就是您正在使用的内容。
相关部分是:
select *
from
( select *
from emp
order by sal desc )
where ROWNUM <= 5;
答案 2 :(得分:2)
您可以嵌套查询:
select * from (
select bla
from bla
where bla
order by finaldate desc
)
where rownum < 2
答案 3 :(得分:0)
另一种方式:
SELECT ...
FROM bla
WHERE finalDate = (SELECT MAX(finalDate) FROM bla) AND
rownum = 1