Как сделать разбиение на страницы в SQL Server 2008

Как Вы делаете разбиение на страницы в SQL Server 2008?

51
задан Moslem Ben Dhaou 28 April 2014 в 03:02
поделиться

2 ответа

Вы можете попробовать что-то вроде

DECLARE @Table TABLE(
        Val VARCHAR(50)
)

DECLARE @PageSize INT,
        @Page INT

SELECT  @PageSize = 10,
        @Page = 2

;WITH PageNumbers AS(
        SELECT Val,
                ROW_NUMBER() OVER(ORDER BY Val) ID
        FROM    @Table
)
SELECT  *
FROM    PageNumbers
WHERE   ID  BETWEEN ((@Page - 1) * @PageSize + 1)
        AND (@Page * @PageSize)
44
ответ дан 7 November 2019 в 10:06
поделиться

Вы можете использовать ROW_NUMBER () :

Возвращает порядковый номер строки в разделе набора результатов, начиная с 1 для первой строки в каждом разделе.

Пример:

WITH CTEResults AS
(
    SELECT IDColumn, SomeField, DateField, ROW_NUMBER() OVER (ORDER BY DateField) AS RowNum
    FROM MyTable
)

SELECT * 
FROM CTEResults
WHERE RowNum BETWEEN 10 AND 20;
41
ответ дан 7 November 2019 в 10:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: