SQLServer中通過intersect,union,except和三個關鍵字對應交、並、差三種集合運算。
他們的對應關系可以參考下面圖示

測試示例:
構造A,B兩個數據集
A:1,2,3,4 B:1,2,5 WITH A AS (SELECT '1' tno UNION ALL SELECT '2' UNION ALL SELECT '3' UNION ALL SELECT '4' ), B AS(SELECT '1' tno UNION ALL SELECT '2' UNION ALL SELECT '5')
查詢示例:
1 Union 取合集並過濾重復數據
--1 Union 取合集並過濾重復數據 --結果顯示: 1,2,3,4,5 SELECT * FROM A UNION SELECT * FROM B;
2 Union all 取合集不過濾重復數據
--2 Union all 取合集不過濾重復數據 --結果顯示:1,2,3,4,1,2,5 SELECT * FROM A UNION all SELECT * FROM B;
3 Intersect 取交集(兩個表中都有數據)
--3 Intersect 取交集 --結果顯示:1,2 SELECT * FROM A Intersect SELECT * FROM B;
4 except 取差集(取A-B的記錄)
--4 except 取差集 --結果顯示:3,4 SELECT * FROM A except SELECT * FROM B;
