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