Как я могу получить только первую строку в наборе результатов ПОСЛЕ заказа?

Это дает мне только один ряд (первый):

SELECT BLA FROM BLA WHERE BLA AND ROWNUM < 2 

Тем не менее, мне нужна самая последняя дата val; Я могу сделать эту первую строку следующим образом:

 SELECT BLA FROM BLA WHERE BLA ORDER BY FINALDATE DESC 

Однако, когда я пытаюсь смешать две частичные победы, это не сработает – по-видимому, логика «Выбрать первую строку» срабатывает перед порядком, а затем порядок затем игнорируется.

Этот вопрос похож на Как ограничить количество строк, возвращаемых запросом Oracle после заказа? ,

В нем рассказывается о том, как реализовать ограничение MySQL в базе данных оракула, которое, судя по вашим тегам и сообщениям, является тем, что вы используете.

Соответствующий раздел:

 select * from ( select * from emp order by sal desc ) where ROWNUM <= 5; 

В 12c, вот новый способ:

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

Как хорошо!

Вы можете вложить свои запросы:

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

Альтернативный способ:

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