-Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в web_development

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 09.03.2005
Записей:
Комментариев:
Написано: 418


Аналог LIMIT в MSSQL

Четверг, 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?
Рубрики:  Вопросы
Делимся опытом
Базы данных

holy_diver   обратиться по имени Четверг, 09 Февраля 2006 г. 20:14 (ссылка)
SELECT TOP записей_на_страницу FROM table_name
WHERE поле_идентификатор_записи > номер_страницы * записей_на_страницу
?
Ответить С цитатой В цитатник
rum   обратиться по имени Четверг, 09 Февраля 2006 г. 20:51 (ссылка)
Неуниверсально. Ваш способ не позволит выбирать сортируемое поле. Только по айдишнику.
Ответить С цитатой В цитатник
 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку