【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 學習】minus 和intsect 的排序方式!SQL排序
- MySQL學習(五) UNION與UNION ALLMySql
- SQL Union和SQL Union All用法(轉)SQL
- sql中union和union all的用法SQL
- 【SQL】UNION ALL 與UNION 的區別SQL
- sql中union和union allSQL
- sql中UNION和UNION ALL的區別SQL
- 【SQL 學習】排序問題之order by與索引排序SQL排序索引
- SQL UNION 和 UNION ALL 操作符SQL
- 【學習】SQL基礎-003-過濾排序SQL排序
- sql注入之union注入SQL
- MYSQL學習筆記24: 多表查詢(聯合查詢,Union, Union All)MySql筆記
- SQL UNION 操作符 和 UNION ALL 操作符SQL
- sql_intersect交集_minus差集_並集union_union allSQL
- 資料庫學習(六)聯合查詢union資料庫
- SQL優化案例-union代替or(九)SQL優化
- Spark學習——排序ShuffleSpark排序
- 排序學習實踐排序
- 循序漸進調優union相關的sqlSQL
- lisp 習題 our-unionLisp
- SQL 學習SQL
- sql學習SQL
- GraphQL 漸進學習 05-graphql-resolvers-union-聯合的使用
- SQL最佳化案例-union代替or(九)SQL
- Oracle SQL語句優化之UNIONOracleSQL優化
- sql_union all_列別名SQL
- sql 優化過程之union 替換 orSQL優化
- 從排序原理到MYSQL中的排序方式排序MySql
- union all和union的區別
- union和union all的區別
- Union與Union All的區別
- 學習筆記--- 比較排序之堆排序筆記排序
- SQL Server中的集合運算: UNION, EXCEPT和INTERSECTSQLServer
- 迄今見到最長的SQL...濫用UnionSQL
- 自我勸退式的學習方式
- Python 的 12 個學習方式Python
- 學習 Python 的 12 個方式Python
- 以遊戲化的方式學習Java遊戲Java