oracle中 unino,union all,minus,intersect的用法

1.准备测试数据

准备测试表:test_minus_tbl
create table test_minus_tbl(
       id varchar2(20),
       name varchar2(50),
       age int
);

alter table test_minus_tbl add constraint pk_minus_tbl primary key(id);

create sequence seq_test_minus_tbl increment by 1 start with 1 maxvalue 99999999 minvalue 1 nocycle nocache;
准备测试数据
insert into test_minus_tbl(id, name, age)values(seq_test_minus_tbl.nextval, 'lxl', 26);
insert into test_minus_tbl(id, name, age)values(seq_test_minus_tbl.nextval, 'lxl', 26);
insert into test_minus_tbl(id, name, age)values(seq_test_minus_tbl.nextval, 'lxl_01', 26);
insert into test_minus_tbl(id, name, age)values(seq_test_minus_tbl.nextval, 'lxl_02', 26);
insert into test_minus_tbl(id, name, age)values(seq_test_minus_tbl.nextval, 'lxl_01', 26);
insert into test_minus_tbl(id, name, age)values(seq_test_minus_tbl.nextval, 'lxl_02', 26);

2.进行测试

先进行查询全部:
select * from test_minus_tbl;


在介绍union,union all,minus,intersect,之前,必须要明确:参与的结果集必须要有相同的列数,并且类型要相同

minus的作用及用法,两个结果集相减

结果集去掉 name 字段 值为 lxl 的记录,并去重:
select t.name
  from test_minus_tbl t
minus
select t1.name from test_minus_tbl t1 where t1.name = 'lxl';
结果如下图


union all的作用及用法,两个结果集合并,不去重

select t.name
  from test_minus_tbl t
union all
select t1.name from test_minus_tbl t1;
结果如下图



union的作用及用法,两个结果集合并,并且去掉重复的记录,让重复的记录只显示一条

select t.name
  from test_minus_tbl t
union
select t1.name from test_minus_tbl t1;
结果如下图



intersect的作用及用法,求交集

select t.name
  from test_minus_tbl t
intersect
select t1.name from test_minus_tbl t1 where t1.name = 'lxl';
结果如下图










评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值