Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > частичный fetch


Автор: Sleepy_PIP 8.12.2004, 19:38
Имеем - Оракл 8.
Проблемма - выдать клиенту со стороны сервера не полный набор данных. типа с 1 по 10 запись, потом с 11 по 20 и так далее. В конце концов на клиента надо выдать записи выборки с N по N+x.
Сам клиент выбирать записи не должен - это должен делать сервер.
rownum не поможет - запрос сортированный, а ровнум считается до сортировки.
Никогда не думал что это потребуется, однако потребовалось

Автор: <Spawn> 8.12.2004, 20:54
Можно воспользоваться аналитическими функциями + временные представления. Вот рабочий примерчик(быстренько набросaл для своей тестовой домашней таблицыsmile):

Код

select * 
   from (select f.*, row_number() over (order by file_id desc) row_num
           from ftp_files f) temp_view
  where temp_view.row_num < 11;


В скобках за over указывается твоя сортировка и все!!! Очень полезные функции, могу я заметить. Обязательно найди про них инфу и почитай на досуге - можно решать, казалось бы не решаемые ранее проблемыsmile

Автор: Sleepy_PIP 9.12.2004, 10:33
Цитата
Можно воспользоваться аналитическими функциями + временные представления. Вот рабочий примерчик(быстренько набросла для своей тестовой домашней таблицыsmile):

Код

select *
  from (select f.*, row_number() over (order by file_id desc) row_num
          from ftp_files f) temp_view
 where temp_view.row_num < 11;


В скобках за over указывается твоя сортировка и все!!! Очень полезные функции, могу я заметить. Обязательно найди про них инфу и почитай на досуге - можно решать, казалось бы не решаемые ранее проблемыsmile

Огромное Спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)