2012-08-15 74 views
11

这给了我一个行(第一个):如何在订购后获得结果集中的第一行?

SELECT BLA 
FROM BLA 
WHERE BLA 
AND ROWNUM < 2 

不过,我想最近的日期VAL;我可以做的是,第一行是这样的:

SELECT BLA 
FROM BLA 
WHERE BLA 
ORDER BY FINALDATE DESC 

当我尝试混合两个部分的胜利,不过,这是行不通的 - 显然之前的“只选择第一行”逻辑火灾按顺序排列,然后顺序依次被忽略。

+0

你为什么不干脆用(你会得到第一行)使用一组? – GRB73 2017-05-04 07:38:33

回答

1

可以嵌套您的疑问:

select * from (
    select bla 
    from bla 
    where bla 
    order by finaldate desc 
) 
where rownum < 2 
15

在12C,这里的新方法:

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

多漂亮是!

+4

我的作品使用11g *我哭泣* WHYYYYYYY – 2017-03-21 20:12:31

0

的另一种方法:

SELECT ... 
FROM bla 
WHERE finalDate = (SELECT MAX(finalDate) FROM bla) AND 
     rownum = 1