SQL Server 2005和SQL Server 2012中的选择查询的默认排序顺序

Kri*_*a R 5 sql-server sorting sql-server-2005 sql-server-2012

SQL Server 2005和SQL Server 2012中的选择查询的默认排序顺序之间是否存在差异?

我有一个没有主键的表变量.当我对SQL Server 2005中的表变量执行选择查询时,将根据其中一列选择并按字母顺序显示记录.在SQL Server 2012中,记录的显示顺序与父表中的顺序相同.

Fel*_*tan 6

没有默认排序顺序.除非您在ORDER BY子句中指定它,否则无法保证结果将始终以相同的方式返回.

您可能会发现结果是由PK聚簇索引或聚集索引排序,但情况并非总是如此.


你可能想读这个:

没有ORDER BY,Alexander Kuznetsov没有默认的排序顺序


Rah*_*thi 0

MSDN

指定指定列中的值应按升序或降序排序。ASC 从最低值到最高值排序。DESC 从最高值到最低值排序。ASC 是默认排序顺序。空值被视为最低的可能值。

因此,在 ORDER BY 子句中,如果您未提供排序顺序,那么默认情况下,它将分别在 2005 年和 2012 年按升序排序。

但是,如果您没有指定 ORDER BY 子句,则排序顺序未定义且不确定。