(SQL Server) UNION ALL / UNION differences

Jerry Wu
Apr 30, 2021

--

from https://www.complexsql.com/sql-set-operatorsunionunion/

UNION 為集合運算中的其中一種,簡單來說它就是將兩個以上的SQL指令產生的結果進行合併。以下將利用SQL Server 示範 UNION ALL 以及 UNION兩個指令,並比較兩者之間的差異 !

首先,先產出以下兩張資料表並 Insert 一些資料,如下 :

資料表[Employee](欄位[EmpID]、[EmpName])

資料表[Customer](欄位[CustID]、[CustName])

UNION ALL

UNION ALL 結果為 : Jerry, Allen, Tony, Nina, Jerry, Lisa, James.

簡單來說就是將兩張資料表的欄位[EmpName]、[CustName]合併後直接輸出。

UNION

UNION 結果為 : Allen, James, Jerry, Lisa, Nina, Tony.

UNION剔除了兩張資料表欄位[EmpName]、[CustName]重複的資料,並且最終的資料已經被排序

由於 UNION 將會剔除重複的資料,可以理解為先將資料合併後再執行 DISTINCT 剔除重複資料,要達此目的就需先將資料進行排序。

因此採用 UNION 前需思考剔除重複資料是否為必要的條件,尤其是在處理大量資料時,將會造成Memory、I/O 消耗的問題,若沒必要請使用 UNION ALL 即可 !

謝謝你的閱讀!如果有任何回饋或疑問,歡迎留言給我!
如果對我的文章有興趣,請不吝按下Follow & Clap!
每個月都會認真更新文章唷😊 千萬別錯過了~

--

--

Jerry Wu

Full-Stack Engineer,熱愛接觸Web前後端、DevOps相關技術與知識,喜歡分享、旅遊和桌球🏓