【问题标题】:Equivalent of LIMIT in T-SQLT-SQL 中 LIMIT 的等价物
【发布时间】:2012-05-10 08:54:36
【问题描述】:

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

LIMIT $startRow, $maxRow

有什么想法或建议吗?

【问题讨论】:

标签: php sql-server-2005


【解决方案1】:

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

Example From 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;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-10
    • 2020-03-28
    • 1970-01-01
    • 2011-12-08
    • 2011-08-09
    • 2010-11-27
    • 1970-01-01
    • 2017-01-15
    相关资源
    最近更新 更多