SQLSERVER資料集合的交、並、差集運算(intersect,union,except)
阿新 • • 發佈:2019-02-16
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;