выберите n-1 строк запроса

Я использую оракул 11g. Предположим, что следующий запрос возвращает n строк.

SELECT t.id,t.from_date,t.price  FROM prices t order by id, date

И мне нужны только первые n-1 строк из запроса. Как я могу сделать это без использования внутренних запросов?


person awsome    schedule 08.02.2011    source источник
comment
Почему вы не хотите использовать внутренние запросы? А первые n-1 строк по порядку чего?   -  person Martin Smith    schedule 08.02.2011
comment
Что бы вы ORDER BY определили для первых n-1 строк?   -  person Joe Stefanelli    schedule 08.02.2011
comment
потому что запрос, который у меня есть, уже имеет много логики и также выполняет некоторые вычисления. Так что это довольно медленно. Я уже использую orderby и хотел что-то вроде «limit» в mysql.   -  person awsome    schedule 08.02.2011
comment
для заказа я отредактировал свой вопрос   -  person awsome    schedule 08.02.2011
comment
возможный дубликат Ограничение возвращаемой записи из SQL-запроса в Oracle   -  person DCookie    schedule 08.02.2011
comment
Кажется, дублирует другие вопросы, например. stackoverflow.com/ вопросы/486452/   -  person DCookie    schedule 08.02.2011


Ответы (1)


EDIT: изменено на основе дополнительной информации, добавленной к вопросу.

select p.id, p.from_date, p.price
    from (select id, from_date, price, row_number() over (order by id desc) as r from prices) p
    where p.r <> 1
    order by p.id, p.from_date
person Joe Stefanelli    schedule 08.02.2011