【问题标题】:Limit offset support for SQL Server 2008 [duplicate]SQL Server 2008 的限制偏移支持 [重复]
【发布时间】:2015-10-08 21:34:16
【问题描述】:

我有一个基于 SQL Server 2008 的项目。有数百万行的表,我需要在两个日期之间获取一些行(有一个列 cdate),需要输出一个工作表文件,但不可能一次获取所有行(请求超时问题),所以我找到了一种方法来中断多个请求以在工作表上写入。但是为此,我需要有一种方法来仅选择一些行,例如 mysql 中的 limit 和 offset 。有没有办法做到这一点???

【问题讨论】:

    标签: sql-server-2008 limit


    【解决方案1】:

    limit 的 Microsoft Transact-SQL 等效项是 top

    select top 100
        whicheverColumns
    from
        whicheverTable
    where
        whicheverFilteringCriteria
    order by
        whicheverDateEtc desc; -- or ASC is default
    

    【讨论】:

    • 但是我也需要在行之间进行选择,如何通过select top子句来完成??
    • 上面的重复链接有一个答案,说明如何通过添加包含ROW_NUMBER() 的子查询/CTE 来做到这一点。
    • @underscore_d 或者您可以使用 API 光标从上次中断的位置继续,而无需重新计算。 dba.stackexchange.com/a/68280/3690
    • @MartinSmith 有趣的想法,感谢您的链接!对于大型/重复块以避免重新扫描,这绝对是更可取的。
    猜你喜欢
    • 2016-02-13
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2010-12-08
    • 1970-01-01
    相关资源
    最近更新 更多