【问题标题】:How can I make MySQL's LIMIT in SQL Server? [duplicate]如何在 SQL Server 中设置 MySQL 的 LIMIT? [复制]
【发布时间】:2009-12-16 10:28:28
【问题描述】:

我正在从数据库中检索数千个数据。我想在网页上显示 100 条记录的限制。我可以使用以下 SQL 显示前 100 条记录:

SELECT TOP 100 * FROM TBLStock

我如何导航下一条记录 101 到 200、201 到 300 等。请帮我。我正在使用 SQL Server 2005。帮助!如何在 SQL Server 中像 MySQL 中的 LIMIT 一样编写代码?

【问题讨论】:

    标签: sql-server pagination


    【解决方案1】:

    方法一: SELECT TOP 100 FROM (SELECT TOP 500 ORDER BY)

    AFAIK 这是 Yukon (MS SQL server 2005) 之前的唯一方法。在中间进行反向排序的双重选择。

    令人惊讶的是,它也被认为是高效的。

    方法 2:使用从 SQL Server 2005 开始可用的 Row_Number() 函数,正如其他帖子所建议的那样。

    【讨论】:

    • +1 表示行号超过(ORDER BY ...)
    【解决方案2】:
    SELECT t.*
    FROM
    (
        SELECT first_column, second_column, third_column, etc,
            ROW_NUMBER() OVER (ORDER BY sort_column) AS row_num
        FROM your_table
    ) AS t
    WHERE t.row_num BETWEEN 50 AND 100
    ORDER BY t.row_num
    

    【讨论】:

    • 非常感谢!你的回答也适合我的问题!但我可以选择一个正确的答案。 :)
    猜你喜欢
    • 2011-12-20
    • 2012-05-13
    • 2010-10-10
    • 1970-01-01
    • 2010-09-18
    • 2012-02-19
    • 1970-01-01
    相关资源
    最近更新 更多