SQLSERVER數據集合的交、並、差集運算(intersect,union,except)


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;  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM