DB2 EXCEPT INTERSECT UNION UNION ALL

本文详细介绍了SQL中的集合运算,包括交集(INTERSECT)、差集(EXCEPT)及合集(UNION)操作,并通过具体示例展示了如何使用这些运算符来处理数据集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


INSERT INTO AA_WEEK VALUES
(1,'Monday','Mon'),
(2,'Tuesday','Tues'),
(3,'Wednesday','Wed'),
(4,'Thursday','Thurs'),
(5,'Friday','Friday'),
(6,'Saturday','Sat'),
(7,'Sunday','Sun');
COMMIT;
 
查询一把,看看所有数据:
SELECT * FROM AA_WEEK;
+------+-----------+--------+
| CODE | EN_NAME   | ABB    |
+------+-----------+--------+
|    1 | Monday    | Mon    |
|    2 | Tuesday   | Tues   |
|    3 | Wednesday | Wed    |
|    4 | Thursday  | Thurs  |
|    5 | Friday    | Friday |
|    6 | Saturday  | Sat    |
|    7 | Sunday    | Sun    |
+------+-----------+--------+
 

一、交集运算:INTERSECT、INTERSECT ALL
 
-- 求交集:A交B
SELECT * FROM AA_WEEK X WHERE X.CODE IN (1,2,3) -- 集合A
INTERSECT                                       -- 集合B
SELECT * FROM AA_WEEK X WHERE X.CODE IN (2,3,4);
---------------------------------
2       'Tuesday'       'Tues'
3       'Wednesday'     'Wed'
 
说明:INTERSECT和INTERSECT ALL是等效的。
 
二、差集运算:EXCEPT、EXCEPT ALL
 
-- 求差集:A减B
SELECT * FROM AA_WEEK X WHERE X.CODE IN (1,2,3) -- 集合A
EXCEPT                                          -- 集合B
SELECT * FROM AA_WEEK w WHERE w.CODE IN (2,3,4);        
 
说明:EXCEPT和EXCEPT ALL是等效的。
---------------------------------
1       'Monday'        'Mon'
 
三、合集运算:UNION、UNION ALL
 
-- 求合集:A+B(不消除重复行)
SELECT * FROM AA_WEEK X WHERE X.CODE IN (1,2,3) -- 集合A
UNION ALL                                       -- 集合B
SELECT * FROM AA_WEEK X WHERE X.CODE IN (2,3,4);
---------------------------------
2       'Tuesday'       'Tues'
3       'Wednesday'     'Wed'
4       'Thursday'      'Thurs'
1       'Monday'        'Mon'
2       'Tuesday'       'Tues'
3       'Wednesday'     'Wed'
 
-- 求合集:A+B(消除重复行)
SELECT * FROM AA_WEEK X WHERE X.CODE IN (1,2,3) -- 集合A
UNION                                   -- 集合B
SELECT * FROM AA_WEEK X WHERE X.CODE IN (2,3,4);
---------------------------------
1       'Monday'        'Mon'
4       'Thursday'      'Thurs'
2       'Tuesday'       'Tues'
3       'Wednesday'     'Wed'
 
说明:UNION和UNION ALL是不同的。UNION消除重复行记录,UNION ALL不消除重复行记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值