UNION、EXCEPT和INTERSECT操作查询结果

对查询结果进行合并、剔除、取重操作可以通过UNION、EXCEPT和INTERSECT实现

任意一种操作都要满足以下两个条件:

  1.字段的数量和顺序一致

  2.对应字段的数据类型相兼容

一、UNION

类似集合的并集运算

示例:下面两个表,查询拥有银行存款账号或贷款账号的客户姓名

表Depositor:
Customer_name Acc_num
1 Nora   101 2 Robin   103 3 James   107 4 Jennifer 109
表Borrower:
Customer_name Loan_num
1 Nora 301 2 Robin 305 3 James 306 4 Jenne 308

  无[ALL]修饰:

1  SELECT Customer_name FROM Depositor
2  UNION 
3  SELECT Customer_name FROM Borrower

  查询结果:

Customer_name
1
James 2 Jenne 3 Jennifer 4 Nora 5 Robin 6 Tom

  有[ALL]修饰:

1   SELECT Customer_name FROM Depositor
2  UNION ALL 
3  SELECT Customer_name FROM Borrower

  查询结果:

Customer_name
1
Nora 2 Robin 3 James 4 Jennifer 5 Tom 6 Nora 7 Robin 8 James 9 Jenne

二、EXCEPT

类似于集合的减法,从前一个表中剔除两个表中相同的记录。

示例:还是基于上文两个表,查询只有银行存款账号而没有贷款账号的客户姓名

1  SELECT Customer_name FROM Depositor
2  EXCEPT 
3  SELECT Customer_name FROM Borrower

查询结果:

Customer_name
1
Jennifer

三、INTERSECT

类似于集合的交集运算,选出两个表中相同的记录

示例:同样基于上文的两个表,查询既有银行存款账号又有贷款账号的客户信息

1  SELECT Customer_name FROM Depositor
2  INTERSECT
3  SELECT Customer_name FROM Borrower

查询结果:

Customer_name
1
James 2 Nora 3 Robin

转载于:https://www.cnblogs.com/lamulacuo/p/combiningResultSets.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值