代码之家  ›  专栏  ›  技术社区  ›  Diskdrive

按非唯一列选择顶部语句排序

  •  1
  • Diskdrive  · 技术社区  · 14 年前

    我有两个sql查询

    select * from table1
    ORDER BY column1
    
    Select top 10 * from table1
    ORDER by column1
    

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

    当我运行这两个查询时,我得到的行以不同的顺序返回。我认为这是因为排名的标准(排序依据)是非唯一的。

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

    2 回复  |  直到 14 年前
        1
  •  2
  •   Mitch Wheat    14 年前

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

        2
  •  1
  •   Will A    14 年前

    考虑它的随机性-即使在某些情况下不是这样,也不应该有DBMS对结果的排序做出承诺,以防出现不符合ORDER by要求的排序的情况。