共計 1117 個字符,預計需要花費 3 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
丸趣 TV 小編給大家分享一下 SQL 中 Union 的用法示例,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
sql union 用法是什么?
sql union 用法的總結:
UNION 運算符將多個 SELECT 語句的結果組合成一個結果集。
(1)使用 UNION 須滿足以下條件:
A:所有查詢中必須具有相同的結構(即查詢中的的列數和列的順序必須相同)。
B:對應列的數據類型可以不同但是必須兼容(所謂的兼容是指兩種類型之間可以進行隱式轉換,不能進行隱式轉換則報錯)。也可以用顯式轉換為相同的數據類型。
(當數據類型不同時,則根據數據類型優先級規則確定所產生的數據類型。如果類型相同,但精度、小數位數或長度不同,則根據用于合并表達式的相同規則來確定結果)(參照MSDN:數據類型優先級)
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 運算符的語句求值。可使用圓括號指定求值順序。
MSDN 例子如下
例如,以下語句并不等價:
/* 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
看完了這篇文章,相信你對“SQL 中 Union 的用法示例”有了一定的了解,如果想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!
向 AI 問一下細節