2012-02-27 2 views
2

Я написал запрос, который извлекает первые 5 записей из таблицы, как этотзапросов SQL Server Помощь требуется

SELECT Top(5) Activity, GETUTCDATE() as CurrentDate 
    FROM Activities 
    WHERE UserID = @uid 
    ORDER BY ActivityDate DESC 

и видом я отображение топ 5 записей, а я также ссылку Подробнее о нажав из которых следующие 5 записей должны показать, еще раз нажав на эту ссылку шоу следующего 5 записей и так далее

Я имею путаницу о том, как написать этот запрос, т.е. как получить следующие 5 записей, то следующие 5 и так далее

+0

может быть, вы можете добавить row_count и получить данные, основанные на ROW_COUNT ... –

+0

уверен, GETUTCDATE лишь MSSQL п. –

ответ

2

Я использую функцию RowNumber и CTE для достижения пейджинга в вашем примере Это было бы чем-то вроде.

With UserActivityData as (
SELECT *, 
    ROW_NUMBER() OVER(ORDER BY ActivityDate DESC) as RowNum, 
    ROW_NUMBER() OVER(ORDER BY ActivityDate ASC) as InverseRowNum 
    FROM Activities 
    WHERE UserID = @uid 
    ) 

SELECT * from UserActivityData where RowNum between @StartIndex and @StartIndex + 4  
Смежные вопросы