【SQL 學習】UNION 的排序方式!
(感謝dingjun123版主 為本文提供幫助)
union怎麼排序?
許多人肯定會說 根據第一欄位來排序,呵呵,這個答案能得50分!考慮到如果select的第一個欄位是重複時,會怎樣?看一個測試!
SQL> select 1 id ,'a1' val ,'b1' text from dual
2 union
3 select 1 ,'a1' ,'b3' from dual
4 union
5 select 1 ,'a1' ,'b2' from dual;
ID VA TE
---------- -- --
1 a1 b1
1 a1 b2
1 a1 b3 --每個欄位都有排序的。
從上面的結果可以看出,顯然這不是根據第一欄位來排序的,再看下一個:
SQL> select 1 id ,'a1' val ,'b1' text from dual
2 union
3 select 1 ,'a1' ,'b3' from dual
4 union
5 select 1 ,'a1' ,'b2' from dual
6 union
7 select 1 ,'a2' ,'b3' from dual
8 union
9 select 1 ,'a2' ,'b1' from dual
10 union
11 select 1 ,'a2' ,'b2' from dual;
ID VA TE
---------- -- --
1 a1 b1
1 a1 b2
1 a1 b3
1 a2 b1
1 a2 b2
1 a2 b3
已選擇6行。
基本上從這裡可以得出 union 執行的排序是全量排序,即對select 語句所包含的所有欄位進行排序!
再次驗證一下:
SQL> select 1 id ,'a1' val ,'b1' text from dual
2 union
3 select 1 ,'a1' ,'b3' from dual
4 union
5 select 1 ,'a1' ,'b2' from dual
6 union
7 select 1 ,'a2' ,'b3' from dual
8 union
9 select 1 ,'a2' ,'b1' from dual
10 union
11 select 1 ,'a2' ,'b2' from dual
12 union
13 select 2 ,'a1' ,'b2' from dual
14 union
15 select 2 ,'a2' ,'b1' from dual
16 union
17 select 2 ,'a2' ,'b2' from dual
18 union
19 select 2 ,'a2' ,'b3' from dual
20 union
21 select 3 ,'a2' ,'b3' from dual
22 union
23 select 3 ,'a1' ,'b2' from dual;
ID VA TE
---------- -- --
1 a1 b1
1 a1 b2
1 a1 b3
1 a2 b1
1 a2 b2
1 a2 b3
2 a1 b2
2 a2 b1
2 a2 b2
2 a2 b3
3 a1 b2
3 a2 b3 ---可以看出每個欄位有排序了!所以union是全量排序的~!
已選擇12行。
另外,minus,intersect的排序也是按所有列出現的順序全量排序!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-677667/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql中union和union all的用法SQL
- MySQL學習(五) UNION與UNION ALLMySql
- sql中UNION和UNION ALL的區別SQL
- 【學習】SQL基礎-003-過濾排序SQL排序
- sql注入之union注入SQL
- MYSQL學習筆記24: 多表查詢(聯合查詢,Union, Union All)MySql筆記
- SQL優化案例-union代替or(九)SQL優化
- SQL最佳化案例-union代替or(九)SQL
- SQL Server中的集合運算: UNION, EXCEPT和INTERSECTSQLServer
- 資料庫學習(六)聯合查詢union資料庫
- SQL學習SQL
- SQL 學習SQL
- 新學習的計數排序排序
- GraphQL 漸進學習 05-graphql-resolvers-union-聯合的使用
- Spark學習——排序ShuffleSpark排序
- union all和union的區別
- 學習 Python 的 12 個方式Python
- Python 的 12 個學習方式Python
- SQL學習筆記SQL筆記
- SQL 語句學習SQL
- sql中的擴充套件學習SQL套件
- 簡單的SQL語句學習SQL
- ms sql server排序SQLServer排序
- 自我勸退式的學習方式
- Python 排序---sort與sorted學習Python排序
- 演算法學習之選擇排序和堆排序:演算法排序
- 測試學習SQL篇SQL
- SQL學習___01:基礎SQL
- Java學習的正確開啟方式Java
- hook的幾種方式及原理學習Hook
- 以遊戲化的方式學習Java遊戲Java
- Mysql 分組排序的sql寫法MySql排序
- 3 SQL 聚合與排序SQL排序
- Golang語言排序的幾種方式Golang排序
- java排序方式對比Java排序
- 快速排序-遞迴方式排序遞迴
- union 和union all 使用區別
- union和union all 關鍵字
- 行業分析| 新的學習方式——線上自習室行業