【问题标题】:IS select top x reliable on large data sets in MSSQL是在 MSSQL 的大型数据集上选择 top x 可靠的
【发布时间】:2017-11-10 17:13:15
【问题描述】:

我的问题是以下内容在 MSSQL 中的大型数据集上是否可靠:

select top 1 * from table order by row_id

我想知道是否存在某个阈值,当满足时会从一组数据中返回前 1 个。例如,如果有一个包含数百万行的表,并且如果返回的行确实是顶行或者它是该数据子集的顶行,则运行上述查询。

【问题讨论】:

  • 它确实是返回数据的前 1 行。
  • 如果有记录,无论如何都只会返回1行
  • 您应该从另一个问题中签出this answer...特别是您已经完成的must use order by for your query to be deterministic,这将确保您将根据您的ORDER BY 获得TOP 1 行,无论如何如果有 2 条记录或 200 万条记录。

标签: sql-server data-access


【解决方案1】:

只要有“order by”子句,就既一致又可靠。

【讨论】:

    【解决方案2】:

    您可以根据以下变量进行控制:

    declare @i int = 1
    select top(@i) * from NumSeq order by col1
    

    基于变量 @i 它将返回该数量的记录

    【讨论】:

    • 有趣的信息,但它根本没有回答 OP 的问题。
    猜你喜欢
    • 2014-12-23
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 2011-05-17
    • 2011-03-17
    相关资源
    最近更新 更多