小编典典

等价于SQL Server的LIMIT和OFFSET?

sql

在PostgreSQL中,有LimitandOffset关键字可以非常容易地分页结果集。

SQL Server的等效语法是什么?


阅读 210

收藏
2021-05-05

共1个答案

小编典典

相当于LIMITSET ROWCOUNT,但如果你想通用分页,最好写这样的查询:

;WITH Results_CTE AS
(
    SELECT
        Col1, Col2, ...,
        ROW_NUMBER() OVER (ORDER BY SortCol1, SortCol2, ...) AS RowNum
    FROM Table
    WHERE <whatever>
)
SELECT *
FROM Results_CTE
WHERE RowNum >= @Offset
AND RowNum < @Offset + @Limit

这样做的好处是,如果您决定更改分页选项(或允许用户这样做),则可以对偏移量和限制进行参数化。

注意:@Offset为此,该参数应使用基于1的索引,而不是基于零的常规索引。

2021-05-05