轉自http://bbs.csdn.net/topics/320252452中fredrickhu的回答:函數
SQL Select語句完整的執行順序:spa
一、from子句組裝來自不一樣數據源的數據;.net
二、where子句基於指定的條件對記錄行進行篩選;排序
三、group by子句將數據劃分爲多個分組;ci
四、使用匯集函數進行計算;get
五、使用having子句篩選分組;it
六、計算全部的表達式;io
七、使用order by對結果集進行排序。table
另外:一個查詢語句各個部分的執行順序:class
--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>