標準的 SQL 解析順序
在CSDN看到看到一條SQL查詢語句的問題,如下所示:
select *,row_number() over(order by productname) as rownumber
from products where rownumber between 10 and 20
問題是這條SQL語句會報錯。經過分析發現,這跟SQL的解析順序有關係。因為在計算where的時候row_number還沒算出來。所以SQL語句會報錯。
標準SQL解析順序如下所示:
(1).FROM 子句, 組裝來自不同資料來源的資料
(2).WHERE 子句, 基於指定的條件對記錄進行篩選
(3).GROUP BY 子句, 將資料劃分為多個分組
(4).使用聚合函式進行計算
(5).使用 HAVING 子句篩選分組
(6).計算所有的表示式
(7).使用 ORDER BY 對結果集進行排序
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-675541/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- JUnit 標籤執行順序解析
- SQL 查詢語句的執行順序解析SQL
- oracle 對於SQL語句中物件名的解析順序OracleSQL物件
- Sql執行順序SQL
- c/c++ 標準順序容器 容器的訪問,刪除 操作C++
- SQL Server中SELECT語句執行順序解析SQLServer
- AIX 域名解析順序AI
- DNS解析順序是怎樣的?DNS
- Oracle SQL語句執行流程與順序原理解析OracleSQL
- SQL 語句的執行順序SQL
- SQL 執行順序 你懂的SQL
- Python的方法解析順序(MRO)[轉]Python
- js——<script>標籤的載入順序JS
- SQL Server SQL語句執行順序SQLServer
- SQL 優先順序join>whereSQL
- sql mysql 執行順序 (4)MySql
- SQL語句執行順序SQL
- 測試流程規範--測試准入、準出、停止標準、bug優先順序定義
- mysql 中sql語句關鍵字的書寫順序與執行順序MySql
- NLS引數優先順序解析
- SQL語句各子句的執行順序SQL
- 可看執行順序的xplan.package.sqlPackageSQL
- sql中的or與and的執行順序問題SQL
- dotnet core TargetFramework 解析順序探索Framework
- 解析 RocketMQ 業務訊息--“順序訊息”MQ
- C++ 標頭檔案的包含順序研究C++
- Hive SQL語句的正確執行順序HiveSQL
- SQL語句中的AND和OR執行順序問題SQL
- sql select語法執行順序SQL
- MySQL之SQL邏輯查詢順序MySql
- css選擇器的解析順序簡單介紹CSS
- java基礎(四) java運算順序的深入解析Java
- 【實驗】where子句的解析順序及執行效率
- c/c++ 標準順序容器 之 push_back,push_front,insert,emplace 操作C++
- QTP的3類順序標識(Ordinal Identifiers)QTIDE
- Swift標準庫解析:IntSwift
- 列定義的順序和列儲存的順序
- oracle實用sql(15)--檢視SQL執行計劃的順序OracleSQL