sql语句执行顺序

1.SQL语言,FROM子句最先被处理,SELECT最后被处理。

2. 每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。

只是最后一步生成的表才会返回 给调用者

3.执行顺序是:from->on->where->group by->having->select->distinct->order by->top

记住:1.where是group by之前的筛选,having是group by之后的筛选

2.order by 是select之后的操作。

3.每一步都产生中间结果集。

4.on在where之前执行

(8)SELECT (9)DISTINCT  (11)<Top Num> <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>
原文地址:https://www.cnblogs.com/panxuejun/p/5956603.html