【发布时间】:2012-04-21 07:32:01
【问题描述】:
据我所知,从关系数据库理论来看,没有order by 子句的select 语句应该被认为没有特定的顺序。但实际上在 SQL Server 和 Oracle 中(我已经在这两个平台上进行了测试),如果我从没有 order by 子句的表中多次查询,我总是以相同的顺序得到结果。这种行为可以依赖吗?谁能帮忙解释一下?
【问题讨论】:
-
不,不能依赖。在 SQL Server 中,如果您不指定顺序,那么您可能会获得索引扫描或分配有序扫描。另外,您可能还会遇到“高级扫描”/旋转木马扫描功能。
-
添加 ORDER BY 子句。故事结束。
-
是的,可以信赖。可以依靠它在最不合时宜的时候不能像以前依靠它工作的方式工作:-)
-
如果您知道您想要和期望的顺序,那么省略
ORDER BY有什么意义?这些击键真的值得在可预测性上进行交易吗?
标签: sql-server oracle select sql-order-by