oracle经验之谈

8、集合操作

2018-10-18  本文已影响0人  小母牛不生产奶

UNION

并集,所有的内容都查询,重复的显示一次  



UNION ALL

并集,所有的内容都显示,包括重复的 

 


INTERSECT

交集:

只显示重复的  


MINUS

差集:

只显示对方没有的(跟顺序是有关系的)首先建立一张只包含 20 部门员工信息的表: CREATE TABLE emp20 AS SELECT * FROM emp WHERE deptno=20 ; 


1验证 UNION 及UNION ALL  UNION:SELECT * FROM emp UNION SELECT * FROM emp20 ;  使用此语句重复的内容不再显示了  UNION ALL:SELECT * FROM emp UNION ALL SELECT * FROMemp20 ;  重复的内容依然显示 



2验证INTERSECT

 SELECT * FROM emp INTERSECT SELECT * FROMemp20 ; 

只显示了两个表中彼此重复的记录。 



3、MINUS

返回差异的记录

SELECT * FROM emp MINUS SELECT * FROMemp20 ; 

只显示了两张表中的不同记录 



                                                                                                                                              

满链接也可以用以下的方式来表示:

 select t1.id,t2.id from table1 t1,table t2where t1.id=t2.id(+)  union  select t1.id,t2.id from table1 t1,table t2where t1.id(+)=t2.id

上一篇下一篇

猜你喜欢

热点阅读