SQL Server 2005和SQL Server 2012中的选择查询的默认排序顺序是否存在差异?
我有一个没有主键的表变量。当我对SQL Server 2005中的表变量执行选择查询时,将根据其中一列选择并按字母顺序显示记录。在SQL Server 2012中,记录的显示顺序与父表中的顺序相同。
答案 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子句,则排序顺序未定义且未确定。