1

在 PHP 中,我在需要 (LIMIT) 类型功能的地方进行 SQL Server 查询。我已经知道 TOP 通常用于 SQL Server 而不是 LIMIT (这是 MySQL 语法)。但是,TOP 不允许您像 LIMIT 那样设置“偏移”。在我的查询中,我需要动态的“偏移量”和“行数”。例子:

LIMIT $startRow, $maxRow

有什么想法或建议吗?

4

1 回答 1

1

Sql Server 2005 没有上述限制语法,直到 2012 年才添加。您将需要使用 OVER 子句和公用表表达式。

来自 SqlTeam 的示例

WITH Members  AS
(
    SELECT  M_NAME, M_POSTS, M_LASTPOSTDATE, M_LASTHEREDATE, M_DATE, M_COUNTRY,
            ROW_NUMBER() OVER (ORDER BY M_POSTS DESC) AS RowNumber
    FROM    dbo.FORUM_MEMBERS
)
SELECT  RowNumber, M_NAME, M_POSTS, M_LASTPOSTDATE, M_LASTHEREDATE, M_DATE, M_COUNTRY
FROM    Members
WHERE   RowNumber BETWEEN 1 AND 20
ORDER BY RowNumber ASC;
于 2012-04-30T16:52:08.817 回答