Oracel集合操作操作符:union(并运算),unionAll,intersect(交运算),minus(差运算)

SQL集合操作操作符:union(并运算),unionAll,intersect(交运算),minus(差运算)

说明:本文为本人笔记,不足之处,请谅解。如有错误,欢迎指出。

1.union(并运算)
union运算符可以将多个查询结果相加,并消除重复的行形成一个结果集,其结果相当于集合运算中的并运算。union的结果集是以第一条查询语句所查询的列名为列名(且其他的查询语句查询的列的数量要跟第一条查询语句相同)。举例:
错误:(要有相同数量的列
select id,name from A
union
select id from B
报错:[Err] 1222 - The used SELECT statements have a different number of columns

正确:
select id,name from A
union
select id,name from B

列名、列类型不一样,虽然可以执行,但是查出来的数据混在一起,貌似没用,所以推荐用上一种。

2.unionAll
unionAll和union的区别在于:union会处理重复的数据,只显示一条,而unionAll则是不管有没有重复数据,全部显示

3.intersect(交运算)
union可以算OR运算,而intersect比较像AND。mysql不支持intersect。
如:
select name from A  where name like "c%" or name like "s%" 
intersect
select name from B  where name like "c%" or name like "d%" 
结果集中只保留以c开头的name

4.minus(差运算)
minus集合运算符可以找到两个给定集合间的差集,即它会返回所有从第一个查询中返回的,但是没有在第二个查询中返回的记录
如:
select name from A  where name like "c%" or name like "s%" 
intersect
select name from B  where name like "s%" or name like "d%" 
结果集中只保留以s开头的name。





  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值