oracle 的交并差函数,intersect;union;minus。

创建表并添加数据:

--创建TABLE_A
create table TABLE_A  
(  
 A varchar2(10),  
 B varchar2(10)  
);
--给TABLE_A添加数据
insert into TABLE_A  values('a1','b1');  
insert into TABLE_A  values('a2','b2');  
insert into TABLE_A  values('a3','b3');  


--创建TABLE_B 
create table TABLE_B  
(  
 A varchar2(10),  
 B varchar2(10)  
);
--给TABLE_B添加数据
insert into TABLE_B  values('a1','b1');  
insert into TABLE_B  values('a2','b2');  
insert into TABLE_B  values('a4','b4');  
 

 

 

intersect:  返回查询结果中相同的部分(交集)。

SELECT A,B FROM TABLE_A 
INTERSECT     
SELECT A,B FROM TABLE_B;

--结果
A         B
------------
a1        b1
a2        b2

 

union,union all:  将查询的结果组合后返回, union会过滤重复,union all不过滤重复。

--  TABLE_A和TABLE_B会去除重复数据
SELECT A,B FROM TABLE_A
UNION  
SELECT A,B FROM TABLE_B;  

--结果
A         B
------------
a1        b1
a2        b2
a3        b3
a4        b4

--  TABLE_A和TABLE_B中的所有数据
SELECT A,B FROM TABLE_A 
UNION ALL   
SELECT A,B FROM TABLE_B; 

--结果
A         B
------------
a1        b1
a1        b1
a2        b2
a2        b2
a3        b3
a4        b4

 

minus:  返回在第一个查询结果中包含第二个查询结果中不包含的数据。

SELECT A,B FROM TABLE_A
MINUS  
SELECT A,B FROM TABLE_B;

--结果
A        B
-----------
a3       b3

 

posted @ 2017-05-08 18:02  迷人的智慧  阅读(11265)  评论(0编辑  收藏  举报