Sql 选择按非唯一列排序的top语句

Sql 选择按非唯一列排序的top语句,sql,select,sql-order-by,Sql,Select,Sql Order By,我有两个sql查询 select * from table1 ORDER BY column1 Select top 10 * from table1 ORDER by column1 Column1是非唯一列,table1没有主键 当我运行这两个查询时,我将得到以不同顺序返回的行。我认为这是因为排名标准(排序依据)是非唯一的 我想知道在这种情况下,普通SELECT语句使用什么方法来确定行的输出顺序,以及SELECT top语句将使用什么。这只是随机的吗 在非唯一情况下,不应依赖行的输出顺序

我有两个sql查询

select * from table1
ORDER BY column1

Select top 10 * from table1
ORDER by column1
Column1是非唯一列,table1没有主键

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


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

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


相反,强制执行您想要的排序(通过在ORDER by中包含其他列)

将其视为随机的-即使在某些情况下不是随机的,在ORDER by要求的排序不足的情况下,任何DBMS都不应该对结果的排序作出承诺。

+1,尤其是在ORDER BY中建议增加列。