Вернуть N записей, начиная с M-ой строки
От: GarikR  
Дата: 28.10.03 09:14
Оценка:
Господа,

Есть следующая проблема.
Имеется база SQL Server 2000 и запрос который возвращает кучу строчек.
Я хочу организовать просмотр этих строчек на своем сайте по N штук.
Как это лучше всего сделать???

Ведь не использовать же курсор для того чтобы переместиться к нужной строчке и извлечь после нее N строчек.
Re: Вернуть N записей, начиная с M-ой строки
От: Merle Австрия http://rsdn.ru
Дата: 28.10.03 09:28
Оценка: :)
Здравствуйте, GarikR, Вы писали:

GR>Как это лучше всего сделать???

Воспользоваться ПОИСКОМ
Мы уже победили, просто это еще не так заметно...
Re: Вернуть N записей, начиная с M-ой строки
От: Matvey Россия  
Дата: 28.10.03 11:43
Оценка:
Здравствуйте, GarikR, Вы писали:

GR>Господа,


GR>Есть следующая проблема.

GR>Имеется база SQL Server 2000 и запрос который возвращает кучу строчек.
GR>Я хочу организовать просмотр этих строчек на своем сайте по N штук.
GR>Как это лучше всего сделать???

GR>Ведь не использовать же курсор для того чтобы переместиться к нужной строчке и извлечь после нее N строчек.


Попробуйте вот так:

Есть таблица Table1, в ней есть поле id, которое является первичным ключом.
Объявляем и инициализируем переменную типа int

declare @max_id int;

select @max_id = 0 from table1;



А теперь в цикле (или как вам будет удобно) выполняем следующие действия.

select top 10 * from table1
where id > @max_id;

select @max_id = (select max(id) from
(select top 10 * from table1
where id > @max_id) as ttt);


В результате на каждом шаге итерации будем получать очередные 10 строк.
(Не трудно догадаться, что если после слова top поставить не 10, а 100, то получать данные будем порциями по 100 строк).

Надеюсь, я ответил на Ваш вопрос.

Удачи.
Re[2]: Вернуть N записей, начиная с M-ой строки
От: Matvey Россия  
Дата: 29.10.03 08:07
Оценка:
Здравствуйте, Matvey, Вы писали:

Маленькое уточнение:

select top 10 * from table1
where id > @max_id
order by id;

select @max_id = (select max(id) from
(select top 10 * from table1
where id > @max_id order by id) as ttt);
Re[3]: Вернуть N записей, начиная с M-ой строки
От: Merle Австрия http://rsdn.ru
Дата: 29.10.03 08:14
Оценка:
Здравствуйте, Matvey, Вы писали:

M>Маленькое уточнение:

Ну если уж даешь новое "оригинальное" решение, то было бы неплохо сравнить его с предыдущей сотней, а так же описать недостатки и ограничения...
Мы уже победили, просто это еще не так заметно...
Re[4]: Вернуть N записей, начиная с M-ой строки
От: Matvey Россия  
Дата: 29.10.03 08:33
Оценка:
Здравствуйте, Merle, Вы писали:

M>Ну если уж даешь новое "оригинальное" решение, то было бы неплохо сравнить его с предыдущей сотней, а так же описать недостатки и ограничения...


На оригинальность не претендую. Только не люблю, когда в ответ на простой вопрос человеку предлагают кучу перекрестных ссылок, в которых сам черт ногу сломит. И, тем более, не мхочу сам по ним лазить.

Знаешь ответ — не поленись и напиши несколько строк.

Впрочем, это мое личное мнение, которое, как и любое другое, имеет право на существование.

А на счет недостатков и ограничений сам с удовольствием послушал бы.

Удачи.
Re[5]: Вернуть N записей, начиная с M-ой строки
От: Merle Австрия http://rsdn.ru
Дата: 29.10.03 08:42
Оценка:
Здравствуйте, Matvey, Вы писали:

M>Знаешь ответ — не поленись и напиши несколько строк.

Пойми меня правильно, я не ленюсь писать первые десять раз. Дальше уже предпочту отвечать на более интересные вопросы.
Но чтобы совсем без внимания не оставлять дам все-таки десять ссылок. Если действительно надо — разберется.

M>А на счет недостатков и ограничений сам с удовольствием послушал бы.

Ээээ.. Ну сходи по ссылкам
Мы уже победили, просто это еще не так заметно...
Re[6]: Вернуть N записей, начиная с M-ой строки
От: Matvey Россия  
Дата: 29.10.03 08:58
Оценка:
Здравствуйте, Merle, Вы писали:

M>Пойми меня правильно, я не ленюсь писать первые десять раз. Дальше уже предпочту отвечать на более интересные вопросы.

M>Но чтобы совсем без внимания не оставлять дам все-таки десять ссылок. Если действительно надо — разберется.

Отлично тебя понимаю. Просто я в форуме недавно, и мне еще не надоело пистаь одно и то же. Возможно, скоро надоест, как и тебе.

M>Ээээ.. Ну сходи по ссылкам


 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.