【sql】union all 和union的区别

相同:取结果集的并集

不同:union all展示重复数据,不排序;union不展示重复行,使用默认规则排序

eg:

( SELECT * FROM test_student)
UNION ALL
( SELECT * FROM test_student WHERE AGE_t = 13 )

union all运行结果

1    Lily    12    0    2019-08-19
2    TOM    13    0    2019-01-01
3    tt    14    0    2021-01-15
2    TOM    13    0    2019-01-01

( SELECT * FROM test_student)
UNION
( SELECT * FROM test_student WHERE AGE_t = 13 )

union运行结果

1    Lily    12    0    2019-08-19
2    TOM    13    0    2019-01-01
3    tt    14    0    2021-01-15

注意点:

  1. 多个结果集之间,保证每个select的列数相同,列名可以不同。oracle会将第一个结果的列名作为结果集的列名
    select empno,ename from emp 
    union 
    select deptno,dname from dept 

  2. 没必要每个查询结果集都用orderby,可以最后统一使用

eg:

select empno,ename from emp 
union 
select deptno,dname from dept 
order by ename;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值