Есть следующая проблема.
Имеется база SQL Server 2000 и запрос который возвращает кучу строчек.
Я хочу организовать просмотр этих строчек на своем сайте по N штук.
Как это лучше всего сделать???
Ведь не использовать же курсор для того чтобы переместиться к нужной строчке и извлечь после нее N строчек.
Здравствуйте, 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 строк).
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);
Здравствуйте, Matvey, Вы писали:
M>Маленькое уточнение:
Ну если уж даешь новое "оригинальное" решение, то было бы неплохо сравнить его с предыдущей сотней, а так же описать недостатки и ограничения...
Здравствуйте, Merle, Вы писали:
M>Ну если уж даешь новое "оригинальное" решение, то было бы неплохо сравнить его с предыдущей сотней, а так же описать недостатки и ограничения...
На оригинальность не претендую. Только не люблю, когда в ответ на простой вопрос человеку предлагают кучу перекрестных ссылок, в которых сам черт ногу сломит. И, тем более, не мхочу сам по ним лазить.
Знаешь ответ — не поленись и напиши несколько строк.
Впрочем, это мое личное мнение, которое, как и любое другое, имеет право на существование.
А на счет недостатков и ограничений сам с удовольствием послушал бы.
Здравствуйте, Matvey, Вы писали:
M>Знаешь ответ — не поленись и напиши несколько строк.
Пойми меня правильно, я не ленюсь писать первые десять раз. Дальше уже предпочту отвечать на более интересные вопросы.
Но чтобы совсем без внимания не оставлять дам все-таки десять ссылок. Если действительно надо — разберется.
M>А на счет недостатков и ограничений сам с удовольствием послушал бы.
Ээээ.. Ну сходи по ссылкам
Здравствуйте, Merle, Вы писали:
M>Пойми меня правильно, я не ленюсь писать первые десять раз. Дальше уже предпочту отвечать на более интересные вопросы. M>Но чтобы совсем без внимания не оставлять дам все-таки десять ссылок. Если действительно надо — разберется.
Отлично тебя понимаю. Просто я в форуме недавно, и мне еще не надоело пистаь одно и то же. Возможно, скоро надоест, как и тебе.
M>Ээээ.. Ну сходи по ссылкам