【问题标题】:Select top statement ordering by non-unique column按非唯一列选择顶部语句排序
【发布时间】:2010-08-19 23:41:16
【问题描述】:

我有两个 sql 查询

select * from table1
ORDER BY column1

Select top 10 * from table1
ORDER by column1

Column1 是非唯一列,table1 没有主键。

当我运行这两个查询时,我得到的行以不同的顺序返回。我将此归因于排名标准(排序依据)不是唯一的这一事实。

我想知道在这种情况下,普通的 SELECT 语句使用什么方法来确定行的输出顺序,以及 select top 语句将使用什么方法。它只是随机的吗?

【问题讨论】:

    标签: sql select sql-order-by


    【解决方案1】:

    在非唯一情况下,不应依赖行的输出顺序。

    相反,强加您想要的排序(通过在 ORDER BY 中包含其他列)

    【讨论】:

    • +1,尤其是对 ORDER BY 中其他列的建议。
    【解决方案2】:

    认为它是随机的 - 即使在某些情况下不是随机的,如果没有 ORDER BY 请求的顺序,任何 DBMS 都不应该对结果的顺序做出承诺。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-19
      相关资源
      最近更新 更多