2013-12-13 3 views
1

Have экран поиска пользователя, где по умолчанию я получаю 1000 топ записей заказа по идентификатору пользователя (SQL запрос) и дисплей в передней части, как страницы на записи (с помощью поискового вызова в передней части). Теперь предположим, что у меня есть 20 пейджинговых номеров , где было установлено 50 записей для отображения на странице. Теперь, если пользователь нажимает на 20-м номером пейджинговой я хочу, чтобы принести более 1000 записей из базы данных, но это должно быть постепенным на основеFetch дополнительных записей с помощью запросов SQL

Для например:

В таблице пользователей попавшей 6000 пользователей

1) Fethced 1000 пользователей из того стола пользователя по идентификатору пользователя для первого времени

2) Теперь пользователь нажимает на 20-й номер поискового вызова, и снова мне нужно сделать вызов БД , чтобы получить 1000 пользователей по идентификатору пользователя, но здесь выборка 1000 пользователей должны быть сделаны от 5000 пользователей, и любой из пользователей, (t) от этапа (1)

Заранее благодарим за любую помощь.

ответ

1

Попробуйте использовать функцию ROW_NUMBER()

WITH T as 
(
SELECT tUsers.*, 
     ROW_NUMBER() OVER (ORDER BY Id) as RowNum 
     FROM tUsers 
) 

SELECT * FROM T 
     WHERE RowNum between 50*20 AND 50*20+50 
     ORDER BY ID; 
+0

и прекрасный пример пейджинга с использованием 'ROW_NUMBER()' доступен здесь: http://www.codeproject.com/Articles/12338/Using-ROW_NUMBER-to- paginate-your-data-with-SQL-Se – dotNET

+0

@dotNET Это нормально, но в SP_GETZIPCODES есть ошибка по этой ссылке. Вы должны добавить класс 'order by' в конец запроса для получения правильных результатов' ... WHERE num> @start ORDER BY num; '. В противном случае вы можете получить беспорядок записей со следующих страниц. – valex

Смежные вопросы