小编典典

相当于 SQL Server 的 LIMIT 和 OFFSET?

all

在 PostgreSQL 中有LimitandOffset关键字可以很容易地对结果集进行分页。

SQL Server 的等效语法是什么?


阅读 58

收藏
2022-07-01

共1个答案

小编典典

相当于LIMITis SET 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一开始的索引,而不是正常的从零开始的索引。

2022-07-01