SET 运算符

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:Oracle sql*plus  PLSQL Developer

作者:ZCR

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

将多个查询用SET操作符连接组成一个新的查询:

 

Union / Union  all

Intersect

Minus

 

Union操作符返回的是两个查询的结果并集,但不会重复

 

Union  all 操作符返回的是两个查询的结果并集,对于两个结果集的重复部分,不去重。

 

Intersect 操作符返回来那个个结果的交集

 

Minus 返回两个结果的差值,以第一个为中心(下面有详细的例子)

 

下面我就一一举例说明

 

union

 

  1. 查询部门id20和部门id30的员工信息

 

select * from employees

 

where department_id = '20'

 

union

 

select * from employees

 

where department_id = '30'

 

union all  :和union的区别是,union是可以去重复的,union all相同的也不去重复

 

 

2 查询工资3500和部门30004000的员工信息

SELECT *

FROM   employees

where  salary = '3500'

UNION all

SELECT *

FROM   employees

where  salary between 3500 and 4000

 

Intersect:返回的是共同的部分数据

 

3.查询部门id100和部门id60的相同工资

 

select salary from employees where department_id = 100

Intersect

select salary from employees where department_id = 60

 

Minus:返回的是第一个数据集(与第二个数据集不相同的数据)的数据

 

解析:

A(1,2,3,6)

Minus

B(2,3,8,9)

 

返回的是(1,6

而并不会返回89,自返回以第一个以第一个数据集为中心不同的数据

4.查询部门id100和部门id60的不相同工资

select salary from employees where department_id = 100

minus

select salary from employees where department_id = 60

 

 

 

3,4题数据的查询结果

  1. 部门id100的工资

  1. 部门id60的工资

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值