powered by simpleCommunicator - 2.0.44     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / разбиение результата селекта на равные блоки..
4 сообщений из 4, страница 1 из 1
разбиение результата селекта на равные блоки..
    #32264243
sergeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Портирую веб-интерфейс, с MySQL на DB2.



Что бы сделать интерфейс пригодным для работы, выводимые данные разбиваются на страницы, в майскуэль это роеализовывалось следующим образом:

select * from mytable limit 100,50;


конструкция limit 100,50 означает - выбрать 50 записей начиная с сотой из таблицы сформированной запросом select * from mytable.


Возникла проблема:
DB2 не признает конструкцию limit 100,50.
проштудировав ibm.com не нашел ничего подходящего. Самое близкое что было - fetch-first-clause но оно выбирает фиксированное колво рядов с начала, а нсли надо из середины?



Подскажите пожалуйста как разбивать результат запроса, на блоки с фиксированным количеством рядов??


спасибо.
...
Рейтинг: 0 / 0
разбиение результата селекта на равные блоки..
    #32264266
Moses
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то вроде:

with table1 as
(select ROW_NUMBER() OVER() as ROW_NUM from mytable)
select * from table1 where ROW_NUM > 100 fetch first 50 rows only;
...
Рейтинг: 0 / 0
разбиение результата селекта на равные блоки..
    #32264277
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

Для DB2-шников - книга, обязательная к прочтению:
http://ourworld.compuserve.com/homepages/Graeme_Birchall/HTM_COOK.HTM


Искомый пример на 62-й странице, применение ROW_NUMBER() OVER().
...
Рейтинг: 0 / 0
разбиение результата селекта на равные блоки..
    #32264284
sergeus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я поискал по форуму и нашел уже эту книгу - спасибо большое!
На удивление толковая книга..


вот у меня другой вопрос возник, он уже к DB2 меньшее отношение имеет, но все же может быть кто то знает?


делаю запрос:

Код:
1.
2.
3.
4.
5.
select * from 
(select A,B,C,ROW_NUMBER() OVER(order by a desc) as RN)
 as XXX

where RN>=5 AND RN<10;


Программа на перле, использует DBI


так вот при выборе последнего ряда - DBI подвисает.
Вот что выдает DBI->trace(20):

Код:
1.
2.
3.
1   -> fetch for DBD::DB2::st (DBI::st=HASH(0x23187b0)~INNER) thr#0183F340
1   <- fetch= undef row5 at c:\home\bin\httpd\apache\cgi-bin\admin\traffic.cgi line 237
    <- fetchrow_hashref= undef row5 at c:\home\bin\httpd\apache\cgi-bin\admin\traffic.cgi line 237
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / разбиение результата селекта на равные блоки..
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]