我有两个SQL查询
select * from table1
ORDER BY column1
Select top 10 * from table1
ORDER by column1
Column1是非唯一列,table1没有主键。
当我运行两个查询时,我得到的行以不同的顺序返回。我将此归因于排名标准(Order By)不是唯一的。
我想知道普通的SELECT语句在这种情况下用什么方法来确定行的输出顺序以及select top语句将使用什么方法。它只是随机的吗?
答案 0 :(得分:2)
在非唯一的情况下,不应依赖行的输出顺序。
相反,强加您想要的顺序(通过在ORDER BY中包含其他列)
答案 1 :(得分:1)
考虑它是随机的 - 即使它不是在某些情况下,在没有ORDER BY请求的排序的情况下,DBMS不应该对结果的排序作出承诺。