select查詢中union連線符
UNION 運算子將多個 SELECT 語句的結果組合成一個結果集。
(1)使用 UNION 須滿足以下條件:
A:所有查詢中必須具有相同的結構(即查詢中的的列數和列的順序必須相同)。
B:對應列的資料型別可以不同但是必須相容(所謂的相容是指兩種型別之間可以進行隱式轉換,不能進行隱式轉換則報錯)。也可以用顯式轉換為相同的資料型別。
(當資料型別不同時,則根據資料型別優先順序規則確定所產生的資料型別。如果型別相同,但精度、小數位數或長度不同,則根據用於合併表示式的相同規則來確定結果)
C:如果為XML資料型別則列必須等價(所有列都必須型別化為 XML 架構,或者為非型別化),如果型別化,這些列必須型別化為相同的 XML 架構集合。
(2)UNION結果集
A:UNION 後的結果集的列名與 第一個 SELECT 語句的結果集中的列名相同。另一個 SELECT 語句的結果集列名將被忽略。
B:UNION預設的刪除結果集中重複的記錄,如果使用 ALL 關鍵字則在結果集中保留所有記錄(保留重複記錄)
(3)注意點
A: Transact-SQL 語句中可以使用多個 UNION 運算子
B:在使用了 UNION 運算子的各個 SELECT 語句不能包含它們自己的 ORDER BY 或 COMPUTE 子句。而只能在最終的組合結果集(即最後一個 SELECT 語句的後面)使用一個 ORDER BY 或 COMPUTE 子句。
C:在使用了 UNION 運算子的各個 SELECT 語句中可以使用 GROUP BY 和 HAVING 子句。
D:預設情況下,SQL Server 2005 從左向右對包含 UNION 運算子的語句求值。可使用圓括號指定求值順序。
例如,以下語句並不等價:
/* First statement. */
SELECT * FROM TableA
UNION ALL
( SELECT * FROM TableB
UNION
SELECT * FROM TableC
)
GO
/* Second statement. */
(SELECT * FROM TableA
UNION ALL
SELECT * FROM TableB
)
UNION
SELECT * FROM TableC)
GO
在第一個語句中,將消除 TableB 與 TableC 的並集中的重複行。而在該集與 TableA 的並集中,將不消除重複行。在第二個語句中,TableA 與TableB 的並集中將包含重複行,但在隨後與 TableC 的並集中將消除重複行。ALL 關鍵字對此表示式的最終結果沒有影響。
相關文章
- select查詢之四:連線查詢
- mysql求交集:UNION ALL合併查詢,inner join內連線查詢,IN/EXISTS子查詢MySql
- MySQL講義第27講——select 查詢之自連線查詢MySql
- 查詢集合操作union與union all
- 連線查詢
- linux下查詢無效的符號連線(轉)Linux符號
- 組合查詢(UNION)
- SQL連線查詢SQL
- oracle 連線查詢Oracle
- 【Oracle】--連線查詢Oracle
- MYSQL學習筆記24: 多表查詢(聯合查詢,Union, Union All)MySql筆記
- sql 連線查詢例項(left join)三表連線查詢SQL
- Shell 中的連線符:&&、||
- MySql中的資料查詢語言(DQL)三:連線查詢MySql
- MySQL之連線查詢和子查詢MySql
- mysql查詢語句5:連線查詢MySql
- MySQL之連線查詢MySql
- 資料庫 - 連線查詢、巢狀查詢、集合查詢資料庫巢狀
- mysql-分組查詢-子查詢-連線查詢-組合查詢MySql
- myeclipse 中java連線mysql、查詢測試EclipseJavaMySql
- 連線查詢中不等式的運用
- SQL UNION 操作符 和 UNION ALL 操作符SQL
- select查詢之三:子查詢
- select查詢之一:普通查詢
- oracle連線查詢詳解Oracle
- MySQL學習-連線查詢MySql
- Hibernate連線查詢join
- 【janes】多表查詢 外連線
- MySQL8:連線查詢MySql
- MySQL 合併查詢union 查詢出的行合併到一個表中MySql
- 資料庫資料的查詢----連線查詢資料庫
- 水煮oracle31----連線查詢&合併查詢Oracle
- select子查詢
- 在 SQL Server 中查詢活動連線和死鎖SQLServer
- /*+ MERGE_AJ */ 放到NOT IN 子查詢中反向連線
- SQL UNION 和 UNION ALL 操作符SQL
- MySQL內連線查詢語句MySql
- 分組查詢連線號段