oracle sql 的执行顺序

SQL Select 语句完整的执行顺序: 

1、from 子句组装来自不同数据源的数据;

2、where 子句基于指定的条件对记录行进行筛选;

3、group by 子句将数据划分为多个分组;

4、使用聚集函数进行计算;

5、使用 having 子句筛选分组;

6、计算所有的表达式;

7、select 的字段;

8、使用 order by 对结果集进行排序。

SQL 语言不同于其他编程语言的最明显特征是处理代码的顺序。在大多数据库语言中,代码按编码顺序被处理。
但在 SQL 语句中,第一个被处理的子句式 FROM,而不是第一出现的 SELECT。SQL 查询处理的步骤序号:
 (8)SELECT  (9) DISTINCT (11) <TOP_specification> <select_list> 

(1)  FROM <left_table>  

(3) <join_type> JOIN <right_table> 

(2) ON <join_condition> 

(4) WHERE <where_condition> 

(5) GROUP BY <group_by_list> 

 (6) WITH {CUBE | ROLLUP} 

 (7) HAVING <having_condition> 

(10) ORDER BY <order_by_list>