2012-08-15 8 views
11

이 (첫 번째) 나에게 하나 개의 행을 제공합니다주문 후 결과 세트의 첫 번째 행만 얻으려면 어떻게해야합니까?

SELECT BLA 
FROM BLA 
WHERE BLA 
AND ROWNUM < 2 
그러나

, 내가 가장 최근 날짜의 발을 원하는; - 분명히 전과 논리 화재를 "를 첫 번째 행을 선택"

SELECT BLA FROM BLA WHERE BLA ORDER BY FINALDATE DESC 

나는 두 부분적인 승리를 혼합하려고

는하지만, 그것은 작동하지 않습니다 : 나는 첫 번째 행 것을 이런 식으로 할 수 있습니다 order by, then order by는 무시됩니다.

+0

왜 당신은 단순히 (첫 번째 행을 얻을 것이다)에 의해 그룹을 사용하지 않는? – GRB73

답변

1

중첩 할 수 있습니다 쿼리 : 12C에서

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

는, 여기에 새로운 방법 :

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

이 어떻게 좋은!

+4

내 작품은 11g * 나를 울다 사용 * WHYYYYYYY –

0

다른 방법 :

SELECT ... 
FROM bla 
WHERE finalDate = (SELECT MAX(finalDate) FROM bla) AND 
     rownum = 1 
관련 문제