DB2 INTERSECT、EXCEPT、UNION集合操作测试

简介:
DB2 INTERSECT、EXCEPT、UNION集合操作测试
 
 
说明:DB2支持三种集合操作INTERSECT(交集)、EXCEPT(差集)、UNION(合集),在ORACLE等数据库里面也有类似的操作,但是细微的地方可能有些差别,现在专门测试一下,以求准确!玩数据千万要细心啊,否则会带来难以意料的结果,呵呵!
 
 
测试环境:
 
DROP TABLE  AA_WEEK;
CREATE TABLE AA_WEEK(
CODE SMALLINT NOT NULL,
EN_NAME VARCHAR(20) NOT NULL,
ABB VARCHAR(20),
CONSTRAINT P_AA_WEEK_CODE PRIMARY KEY (CODE)
);
COMMENT ON TABLE AA_WEEK IS
'星期';
COMMENT ON AA_WEEK
 (CODE IS '星期代码',
  EN_NAME IS '英文星期名',
  ABB IS '英文缩写'
 );
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不消除重复行记录。


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/37650,如需转载请自行联系原作者
相关文章
|
8月前
|
存储 人工智能 C#
【Unity 3D】C#中数组、集合、栈、队列、哈希表、字典的讲解(附测试代码)
【Unity 3D】C#中数组、集合、栈、队列、哈希表、字典的讲解(附测试代码)
109 0
|
8月前
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】⭐⭐⭐Linux 测试与目标主机之间的网络连接ping 命令 使用指南
【Shell 命令集合 网络通讯 】⭐⭐⭐Linux 测试与目标主机之间的网络连接ping 命令 使用指南
250 1
|
6天前
|
Web App开发 JSON 测试技术
API测试工具集合:让接口测试更简单高效
在当今软件开发领域,接口测试工具如Postman、Apifox、Swagger等成为确保API正确性、性能和可靠性的关键。Postman全球闻名但高级功能需付费,Apifox则集成了API文档、调试、Mock与自动化测试,简化工作流并提高团队协作效率,特别适合国内用户。Swagger自动生成文档,YApi开源但功能逐渐落后,Insomnia界面简洁却缺乏团队协作支持,Paw仅限Mac系统。综合来看,Apifox是国内用户的理想选择,提供中文界面和免费高效的功能。
|
23天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
34 11
|
25天前
|
开发框架 .NET Java
C#集合数据去重的5种方式及其性能对比测试分析
C#集合数据去重的5种方式及其性能对比测试分析
49 10
|
6月前
|
弹性计算 Prometheus Cloud Native
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
SLS Prometheus存储问题之Union MetricStore在性能测试中是如何设置测试环境的
|
6月前
|
测试技术 UED 存储
SLS Prometheus存储问题之在使用内置降采样时,SLS自动选择适配的指标库该如何解决
SLS Prometheus存储问题之在使用内置降采样时,SLS自动选择适配的指标库该如何解决
|
7月前
|
Linux Shell 测试技术
Linux服务器测试脚本集合
LemonBench是iLemonrain创作的Linux服务器性能测试工具,能一键检测系统信息、网络、CPU、内存和硬盘性能。
68 0
|
7月前
|
Java
JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
JavaSE——集合框架二(6/6)-(案例)补充知识:集合的嵌套(需求与分析、问题解决、运行测试)
83 0
|
8月前
|
存储 人工智能 测试技术
软件测试/人工智能|一文告诉你Python集合相关知识
软件测试/人工智能|一文告诉你Python集合相关知识

热门文章

最新文章