我使用 SQL Server 2008 R2 并有一个表,其id
列为identity(1,1)
. 如果我想获取按 id 列排序的查询,必须使用Order By ID
或不需要。
编辑: 我在 ID 列上有一个唯一的聚集索引。做这个索引保证我的查询默认按 id 排序。
我使用 SQL Server 2008 R2 并有一个表,其id
列为identity(1,1)
. 如果我想获取按 id 列排序的查询,必须使用Order By ID
或不需要。
编辑: 我在 ID 列上有一个唯一的聚集索引。做这个索引保证我的查询默认按 id 排序。
没有默认排序顺序。即使该表具有聚集索引,也不能保证您按该顺序获得结果。
您必须将子句指定为ORDER BY
所需的排序顺序。
在省略 ORDER BY 的情况下 - 顺序是不可预测的。因为这样的 SQL 语句不要求明确的顺序,所以 SQL Server 可以在结果准备好时返回结果。
这意味着:
该顺序绝对取决于执行计划。
针对某些过滤条件返回的顺序,在其他情况下可能会有所不同
对于某些选择,可以使用其他覆盖索引(不是按 ID 排序的)。这将导致“意外”订单。
如果我们需要获取Ordered list,我们必须使用显式的 ORDER BY 子句。然后我们可以确定订单。只有这样。
不使用“ORDER BY”时,不保证表的顺序。