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

时间:2016-03-18 06:14:43

标签: sql-server sorting sql-server-2005 sql-server-2012

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

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

2 个答案:

答案 0 :(得分:6)

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

您可能会发现结果是PK或聚集索引的顺序,但情况并非总是如此。

您可能需要阅读此内容:

Without ORDER BY, there is no default sort order by Alexander Kuznetsov

答案 1 :(得分:0)

MSDN说:

  

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

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

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