Мне нужно сделать выборку строк из таблицы — ограниченное количество и не с начала
Например, select top 10 * from tabl возращает первые десять строк. Но, допустим, потом мне нужно выбрать следующие десять строк. На ИД ориентироваться нельзя — они не по порядку. Как сделать?
Здравствуйте, Igor32, Вы писали:
I>Но, допустим, потом мне нужно выбрать следующие десять строк. На ИД ориентироваться нельзя — они не по порядку. Как сделать?
Порыться в этом форуме. Есть такая дискуссия:
http://www.rsdn.ru/forum/Message.aspx?mid=112178Автор: voland
Дата: 10.10.02
... << RSDN@Home 1.1 beta 2 >>
Здравствуйте, Igor32, Вы писали:
I>Мне нужно сделать выборку строк из таблицы — ограниченное количество и не с начала
I>Например, select top 10 * from tabl возращает первые десять строк. Но, допустим, потом мне нужно выбрать следующие десять строк. На ИД ориентироваться нельзя — они не по порядку. Как сделать?
здесь
Здравствуйте, Igor32, Вы писали:
I>Мне нужно сделать выборку строк из таблицы — ограниченное количество и не с начала
I>Например, select top 10 * from tabl возращает первые десять строк. Но, допустим, потом мне нужно выбрать следующие десять строк. На ИД ориентироваться нельзя — они не по порядку. Как сделать?
Вообще если тебе нужно только движение вперед по таблице, то сделать это довольно просто — надо только запоминать id последней записи в выборке. Допустим если в первой выборке 10 строк id последней записи 14, то запрос
select top 10 * from tabl where id > 14
и так далее в таком же ключе.
Если требуется движение в обе стороны, то нужно запоминать все id, допустим, в ArrayList и модифицировать запрос по типу
select top 10 * from tabl where id < 25 and id > 14
Достоинство этого способа — несмотря на его некоторую, ну ты понимаешь — в том что он является универсальным для любого SQL Server'a и к тому же куда более производительным, чем
SELECT TOP 10 * FROM tabl
WHERE id NOT IN (SELECT TOP 10 id FROM tabl ORDER BY id) ORDER BY id
... << RSDN@Home 1.1 beta 2 >>
Здравствуйте, Adony, Вы писали:
A>Ой ли?
A>А если набор отсортирован не по ID, тогд как быть с запоминанием последней записи?! а главное дальнейшее сравнение с ним
ОК, я поправляюсь. Вышеописанный способ действует только в том случае, если набор не сортируется по к-либо иному полю, кроме id. Я ж тут не панацею предлагаю. К тому же автор первого поста не указывал, что записи сортируются по к-либо полю. Явно он упомянул бы об этом, если бы это было так.
... << RSDN@Home 1.1 beta 2 >>