在 PHP 中,我在需要 (LIMIT) 类型功能的地方进行 SQL Server 查询。我已经知道 TOP 通常用于 SQL Server 而不是 LIMIT (这是 MySQL 语法)。但是,TOP 不允许您像 LIMIT 那样设置“偏移”。在我的查询中,我需要动态的“偏移量”和“行数”。例子:
LIMIT $startRow, $maxRow
有什么想法或建议吗?
在 PHP 中,我在需要 (LIMIT) 类型功能的地方进行 SQL Server 查询。我已经知道 TOP 通常用于 SQL Server 而不是 LIMIT (这是 MySQL 语法)。但是,TOP 不允许您像 LIMIT 那样设置“偏移”。在我的查询中,我需要动态的“偏移量”和“行数”。例子:
LIMIT $startRow, $maxRow
有什么想法或建议吗?
Sql Server 2005 没有上述限制语法,直到 2012 年才添加。您将需要使用 OVER 子句和公用表表达式。
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;