Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Как в Оракл ограничить выборку сверху и снизу (Аналог LIMIT в MySQL)?  [new]
Grimm
Guest
Привет всем!
Вот такая проблема - делаю постраничную навигацию на сайте, выводить надо данные из селекта, но не все, а какую-то часть, выбрав, к примеру, 25 строк, начиная со строки 100. В MySQL это делается так:

SELECT * FROM table LIMIT 100, 25

А Оракл слова LIMIT не знает. Зато в нем есть, в любой таблице, псеводо столбцы ROWNUM и ROWID, я думал, они могут помочь, но что-то никак не получается. ROWNUM может ограничить только сверху, т.е. можно выбрать несколько строк, начиная всегда с самой первой. А мне то хочется, начиная с сотой! Понятно что что-то должно быть в Оракл для этого, но что это - в доке найти примеров не могу.

Антон
10 июл 01, 08:29    [32186]     Ответить | Цитировать Сообщить модератору
 RE:Как в Оракл ограничить выборку сверху и снизу (Аналог LIMIT в MySQL)?  [new]
_FDA
Guest
Как Oracle работает - не имеет малейшего понятия, но зато знаю
как это можно обойти:
Добавь индексное уникальное поле (например поле 'ID') в таблицу
откуда берешь данные на страницу
ну а дальше обычный опрератор типа такого:

SELECT * FROM MyTABLE WHERE (ID>=100) AND (ID<=124)

Уж такая феня будет работать практически под любой базой данных
Хотя такой способ увеличит объем таблицы

В общем, смотри сам .........
23 май 02, 13:34    [32187]     Ответить | Цитировать Сообщить модератору
 RE:Как в Оракл ограничить выборку сверху и снизу (Аналог LIMIT в MySQL)?  [new]
alvako
Member

Откуда: Тольятти
Сообщений: 39
Есть такое решение:

select * from
(
select rownum NNN, a. * from your_table_name a
) where NNN between 10 and 20

или даже скорее так:

select * from
(
select rownum NNN, a.* from
(
select * from your_table_name order by какоето_поле
) a
) where NNN between 10 and 20
24 май 02, 10:51    [32188]     Ответить | Цитировать Сообщить модератору
 Re: Как в Оракл ограничить выборку сверху и снизу (Аналог LIMIT в MySQL)?  [new]
Ganer
Guest
where rowid between ...
16 июн 02, 19:22    [34995]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить