Oracle 中 union 和union all 的简单使用说明

1、刚刚工作不久,经常接触oracle,但是对oracle很多东西都不是很熟。今天我们来了解一下union和union all的简单使用说明。Union(union all): 指令的目的是将两个 SQL 语句的结果集合并起来,得到你所需要的查询结果。

  网上对这两者之间的一个总结:

                Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

                                   Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

2、对这个概念理解可能会有些模糊。我们通过实例来讲解,首先创建一个表Student,插入一些相应的测试数据。sql语句如下:

复制代码
drop table student;

create table student

(

id int primary key,

name nvarchar2(50) not null,

score number not null

);

insert into student values(1,'Aaron',78);

insert into student values(2,'Bill',76);

insert into student values(3,'Cindy',89);

insert into student values(4,'Damon',90);

insert into student values(5,'Ella',73);

insert into student values(6,'Frado',61);

insert into student values(7,'Gill',99);

insert into student values(8,'Hellen',56);

insert into student values(9,'Ivan',93);

insert into student values(10,'Jay',90);

commit;
复制代码

3、测试 union 命令的结果集,sql语句如下:

复制代码
select *

from student

where id < 4

union

select *

from student

where id > 2 and id < 6
复制代码

4、结果将是:

      1    Aaron    78

      2    Bill    76

      3    Cindy    89

      4    Damon    90

      5    Ella    73

5、如果将union换成union all连接两个结果集,则返回结果是:

             1    Aaron    78

    2    Bill    76

    3    Cindy    89

    3    Cindy    89

    4    Damon    90

    5    Ella    73

 

         小结: 可以看到,Union和Union All的区别之一在于对重复结果的处理。接下来我们将两个子查询的顺序调整一下,改为

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值