Я использую SQL Server 2008 Enterprise на Windows Server 2008 Enterprise. Я использую следующий код, чтобы вернуть часть данных для запроса для реализации подкачки (т. Е. Страницы вверх / вниз, чтобы показать часть результатов на каждой странице, например, подкачки результатов поиска Google) в моем веб-приложении (я использую pageCount в качестве числа результатов, показанных на каждой странице, и startPos в качестве начального номера результата). Например, pageCount 10 означает 10 результатов для каждой страницы, startPos = 0 означает первую страницу, startPos = 1 означает 2-ю страницу и т. Д.
Мой вопрос заключается в том, как эффективно получить общее количество результатов в моем сценарии? Моя главная проблема заключается в том, как реализовать пейджинг (т. Е. Коснуться только части результата) и одновременно получить общее количество результатов?
SELECT *
FROM (SELECT
t.foo, t.goo, ROW_NUMBER() OVER (order by t.zoo DESC ) AS rowNum
FROM
dbo.mycorp t
WHERE
(t.foo LIKE '%'+@search+'%'
or t.foo LIKE '%'+@search+'%'
)
) tt
WHERE tt.rowNum between @startPos and @pageCount + @startPos-1
спасибо заранее,
George