因此, 建議大家在平時工作中 SQL 語句按標準順序寫, 一是專業, 二是實用, 呵呵, 不過我覺得最主要的是心裏感覺舒服.
標準的 SQL 的解析順序爲:
(1).FROM 子句, 組裝來自不同數據源的數據
(2).WHERE 子句, 基於指定的條件對記錄進行篩選
(3).GROUP BY 子句, 將數據劃分爲多個分組
(4).使用聚合函數進行計算
(5).使用 HAVING 子句篩選分組
(6).計算所有的表達式
(7).使用 ORDER BY 對結果集進行排序
舉例說明: 在學生成績表中 (暫記爲 tb_Grade), 把 "考生姓名"內容不爲空的記錄按照 "考生姓名" 分組, 並且篩選分組結果, 選出 "總成績" 大於 600 分的.
標準順序的 SQL 語句爲:
select 考生姓名, max(總成績) as max總成績
from tb_Grade
where 考生姓名 is not null
group by 考生姓名
having max(總成績) > 600
order by max總成績
在上面的示例中 SQL 語句的執行順序如下:
(1). 首先執行 FROM 子句, 從 tb_Grade 表組裝數據源的數據
(2). 執行 WHERE 子句, 篩選 tb_Grade 表中所有數據不爲 NULL 的數據
(3). 執行 GROUP BY 子句, 把 tb_Grade 表按 "學生姓名" 列進行分組
(4). 計算 max() 聚集函數, 按 "總成績" 求出總成績中最大的一些數值
(5). 執行 HAVING 子句, 篩選課程的總成績大於 600 分的.
(7). 執行 ORDER BY 子句, 把最後的結果按 "Max 成績" 進行排序.