SQL Server中是否存在“按列默认顺序”?

时间:2011-04-11 23:11:40

标签: sql-server tsql sql-server-2008

当我执行SELECT col1, col2, col3 FROM table之类的查询时,它会按主键升序排序。

我只是想知道是否有办法指定一个不同的列,如果没有Order By子句就像ORDER BY CreatedDate DESC一样?

我对此表示怀疑(因为它会非常不直观,但无论如何只是想知道。

2 个答案:

答案 0 :(得分:24)

没有。您看到的任何排序都是查询优化器策略的工件。关系理论禁止任何数据集的隐式排序。

对于同一查询,您甚至不能指望下次使用相同的排序,因为优化程序策略取决于上下文和可能更改的数据。

答案 1 :(得分:12)

标准不保证您所看到的行为(按照pk排序)。您应始终指定要检索事物的顺序。