1. 程式人生 > >sql查詢語句的執行順序

sql查詢語句的執行順序

sql查詢語句的處理步驟如下:

--查詢組合欄位
(5)select (5-2) distinct(5-3) top(<top_specification>)(5-1)<select_list>
--連表
(1)from (1-J)<left_table><join_type> join <right_table> on <on_predicate>
        (1-A)<left_table><apply_type> apply <right_table_expression>
as <alias> (1-P)<left_table> pivot (<pivot_specification>) as <alias> (1-U)<left_table> unpivot (<unpivot_specification>) as <alias> --查詢條件 (2)where <where_pridicate> --分組 (3)group by <group_by_specification> --分組條件 (4)having<having_predicate
>
--排序 (6)order by<order_by_list>

說明:
1、順序為有1-6,6個大步驟,然後細分,5-1,5-2,5-3,由小變大順序,1-J,1-A,1-P,1-U,為並行次序。如果不夠明白,接下來再來個流程圖看看。

2、執行過程中也會相應的產生多個虛擬表(下面會有提到),以配合最終的正確查詢。

3、聚合函式在5-1時執行。

sql查詢語句處理步驟流程圖: