【发布时间】:2013-03-06 11:03:36
【问题描述】:
这是我的问题,我被要求确保一个大项目中的语句都被包装成这样:
Select * from (Select ... order by column)
保持他们的顺序。这就引出了一个问题,是否有一些官方来源定义 SQL 选择结果保持其顺序?
将此场景设置为可抓取但最小的上下文:
假设您有一个名为 exampleTBL 的表,其中包含 A 和 B 列。您执行以下语句:
Select * from (Select B from exampleTBL order by A);
独立于使用的DBMS/Driver/Platform/... 的结果是否会由 A 排序?
【问题讨论】:
-
不,如果您不提供
ORDER BY(在最外面的查询上),则无法保证订单。否则,优化器将为您决定顺序。 -
@TimSchmelter 你有官方消息吗?并不是说我不相信你的说法,但我真的很想要一个消息来源。
-
我现在没时间去搜索,反正还是要看 rdbms(虽然我觉得至少 Oracle 和 MS SQL-Server 一起去)。
-
@TimSchmelter 我知道,至少在 Oracle 上,该声明将保持有序 :) 感谢您抽出宝贵时间,如果有官方消息来源,我会尽力寻找。
-
我不确定Oracle,但是,如果您不提供订单,我认为无法保证订单。 stackoverflow.com/a/3764548/284240
标签: sql select sql-order-by definition