antshome (оригинальная работа) впервые опубликована: CSDN
завершает разбиение по страницам базы данных с помощью одного оператора:
выберите верхние 10 b.* from (выберите топ-20 полей первичного ключа, поле сортировки по порядку имен таблиц по полю сортировки) a, имя таблицы b, где b. Ключевое поле = а. Порядок полей первичного ключа по а. Поле сортировки
10 = Количество записей на странице
20 = (Текущая страница + 1) * Количество записей на странице
или более операторов могут обеспечивать разбиение по страницам, но конечный результат сортируется. в порядке возрастания. Если требуется набор результатов, он находится в порядке убывания (например, время), есть два способа справиться с этим
:
1. Используйте следующий оператор, но эффективность может быть ниже.
имя b, (выбрать первые 10 полей первичного ключа, поле сортировки из (выбрать верхние 20 полей первичного ключа, поле сортировки из имени таблицы, порядок по полю сортировки) c, где поле первичного ключа = c. порядок ключевых полей по c. Сортировка по полю
2. Обработайте в ado, переместите курсор набора записей в конец, а затем переместите его вперед.
'' Ниже приведен пример
набора asp rsTemp = Server.CreateObject("adodb.recordset").
Оператор rsTemp.Open,conn,1,1
rsTemp.MoveLast
для i = 1 до rsTemp.RecordCount
'Значение....
rsTemp.MovePrevious
следующий
После тестирования описанный выше метод разбиения на страницы оказался быстрее, чем использование временных таблиц, а также прост и удобен в использовании.