Четверг, 09 Февраля 2006 г. 18:28
+ в цитатник
rum все записи автора
Часто возникает задача постраничного вывода записей чего-либо. При этом сами данные лежат в базе данных. Если в качестве сервера используется MySQL, то само собой разумеется использование LIMIT.
Однако в MSSQL встроенного LIMIT'а нет. Вот одно из простейших решений SQL-запроса для выборки записей, соответствующих одной странице.
SELECT TOP записей_на_страницу FROM table_name
WHERE поле_идентификатор_записи NOT IN (
SELECT TOP номер_страницы * записей_на_страницу поле_идентификатор_записиe FROM table_name ORDER BY сортируемое_поле) ORDER BY сортируемое_поле
Нумерация страниц здесь ведется с нуля. Если вы будете нумеровать их с единицы, следует заменить
номер_страницы * записей_на_страницу
на
(номер_страницы - 1) * записей_на_страницу
Конечно, в самом запросе этих двух множителей быть не должно. Там должно быть число, которое получается в результате перемножения.
А как вы реализуете аналоги LIMIT'а в MSSQL?
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-