【练习】集合运算符

① union(去重,排序)取并集并且去重,按照第一个查询语句的第一个字段升序排序
②union all(不去重,不排序)并集,相当于两个查询语句结果堆集,无序,不去重
③intersect : 取交集
④minus:第二个查询结果的补集,这个补集是第一个查询结果的子集
除了union all 不排序,其他都排序去重

1.union

SQL> select employee_id,job_id
  2  from employees
  3  union
  4  select employee_id,job_id
  5  from job_history;

EMPLOYEE_ID JOB_ID
----------- ----------
        100 AD_PRES
        101 AC_ACCOUNT
        101 AC_MGR
        101 AD_VP
        102 AD_VP
        102 IT_PROG
        103 IT_PROG
        104 IT_PROG
        105 IT_PROG
        106 IT_PROG
        107 IT_PROG

EMPLOYEE_ID JOB_ID
----------- ----------
        108 FI_MGR
        109 FI_ACCOUNT
        110 FI_ACCOUNT
        111 FI_ACCOUNT
        112 FI_ACCOUNT
        113 FI_ACCOUNT
        114 PU_MAN
        114 ST_CLERK
        115 PU_CLERK
        116 PU_CLERK
        117 PU_CLERK

EMPLOYEE_ID JOB_ID
----------- ----------
        118 PU_CLERK
        119 PU_CLERK
        120 ST_MAN
        121 ST_MAN
        122 ST_CLERK
        122 ST_MAN
        123 ST_MAN
        124 ST_MAN
        125 ST_CLERK
        126 ST_CLERK
        127 ST_CLERK

EMPLOYEE_ID JOB_ID
----------- ----------
        128 ST_CLERK
        129 ST_CLERK
        130 ST_CLERK
        131 ST_CLERK
        132 ST_CLERK
        133 ST_CLERK
        134 ST_CLERK
        135 ST_CLERK
        136 ST_CLERK
        137 ST_CLERK
        138 ST_CLERK

EMPLOYEE_ID JOB_ID
----------- ----------
        139 ST_CLERK
        140 ST_CLERK
        141 ST_CLERK
        142 ST_CLERK
        143 ST_CLERK
        144 ST_CLERK
        145 SA_MAN
        146 SA_MAN
        147 SA_MAN
        148 SA_MAN
        149 SA_MAN

EMPLOYEE_ID JOB_ID
----------- ----------
        150 SA_REP
        151 SA_REP
        152 SA_REP
        153 SA_REP
        154 SA_REP
        155 SA_REP
        156 SA_REP
        157 SA_REP
        158 SA_REP
        159 SA_REP
        160 SA_REP

EMPLOYEE_ID JOB_ID
----------- ----------
        161 SA_REP
        162 SA_REP
        163 SA_REP
        164 SA_REP
        165 SA_REP
        166 SA_REP
        167 SA_REP
        168 SA_REP
        169 SA_REP
        170 SA_REP
        171 SA_REP

EMPLOYEE_ID JOB_ID
----------- ----------
        172 SA_REP
        173 SA_REP
        174 SA_REP
        175 SA_REP
        176 SA_MAN
        176 SA_REP
        177 SA_REP
        178 SA_REP
        179 SA_REP
        180 SH_CLERK
        181 SH_CLERK

EMPLOYEE_ID JOB_ID
----------- ----------
        182 SH_CLERK
        183 SH_CLERK
        184 SH_CLERK
        185 SH_CLERK
        186 SH_CLERK
        187 SH_CLERK
        188 SH_CLERK
        189 SH_CLERK
        190 SH_CLERK
        191 SH_CLERK
        192 SH_CLERK

EMPLOYEE_ID JOB_ID
----------- ----------
        193 SH_CLERK
        194 SH_CLERK
        195 SH_CLERK
        196 SH_CLERK
        197 SH_CLERK
        198 SH_CLERK
        199 SH_CLERK
        200 AC_ACCOUNT
        200 AD_ASST
        201 MK_MAN
        201 MK_REP

EMPLOYEE_ID JOB_ID
----------- ----------
        202 MK_REP
        203 HR_REP
        204 PR_REP
        205 AC_MGR
        206 AC_ACCOUNT

115 rows selected.

②union all

SQL> select employee_id,job_id,department_id
  2  from employees
  3  union all
  4  select employee_id,job_id,department_id
  5  from job_history
  6  order by employee_id;

EMPLOYEE_ID JOB_ID     DEPARTMENT_ID
----------- ---------- -------------
        100 AD_PRES               90
        101 AD_VP                 90
        101 AC_ACCOUNT           110
        101 AC_MGR               110
        102 AD_VP                 90
        102 IT_PROG               60
        103 IT_PROG               60
        104 IT_PROG               60
        105 IT_PROG               60
        106 IT_PROG               60
        107 IT_PROG               60

EMPLOYEE_ID JOB_ID     DEPARTMENT_ID
----------- ---------- -------------
        108 FI_MGR               100
        109 FI_ACCOUNT           100
        110 FI_ACCOUNT           100
        111 FI_ACCOUNT           100
        112 FI_ACCOUNT           100
        113 FI_ACCOUNT           100
        114 PU_MAN                30
        114 ST_CLERK              50
        115 PU_CLERK              30
        116 PU_CLERK              30
        117 PU_CLERK              30

EMPLOYEE_ID JOB_ID     DEPARTMENT_ID
----------- ---------- -------------
        118 PU_CLERK              30
        119 PU_CLERK              30
        120 ST_MAN                50
        121 ST_MAN                50
        122 ST_MAN                50
        122 ST_CLERK              50
        123 ST_MAN                50
        124 ST_MAN                50
        125 ST_CLERK              50
        126 ST_CLERK              50
        127 ST_CLERK              50

EMPLOYEE_ID JOB_ID     DEPARTMENT_ID
----------- ---------- -------------
        128 ST_CLERK              50
        129 ST_CLERK              50
        130 ST_CLERK              50
        131 ST_CLERK              50
        132 ST_CLERK              50
        133 ST_CLERK              50
        134 ST_CLERK              50
        135 ST_CLERK              50
        136 ST_CLERK              50
        137 ST_CLERK              50
        138 ST_CLERK              50

EMPLOYEE_ID JOB_ID     DEPARTMENT_ID
----------- ---------- -------------
        139 ST_CLERK              50
        140 ST_CLERK              50
        141 ST_CLERK              50
        142 ST_CLERK              50
        143 ST_CLERK              50
        144 ST_CLERK              50
        145 SA_MAN                80
        146 SA_MAN                80
        147 SA_MAN                80
        148 SA_MAN                80
        149 SA_MAN                80

EMPLOYEE_ID JOB_ID     DEPARTMENT_ID
----------- ---------- -------------
        150 SA_REP                80
        151 SA_REP                80
        152 SA_REP                80
        153 SA_REP                80
        154 SA_REP                80
        155 SA_REP                80
        156 SA_REP                80
        157 SA_REP                80
        158 SA_REP                80
        159 SA_REP                80
        160 SA_REP                80

EMPLOYEE_ID JOB_ID     DEPARTMENT_ID
----------- ---------- -------------
        161 SA_REP                80
        162 SA_REP                80
        163 SA_REP                80
        164 SA_REP                80
        165 SA_REP                80
        166 SA_REP                80
        167 SA_REP                80
        168 SA_REP                80
        169 SA_REP                80
        170 SA_REP                80
        171 SA_REP                80

EMPLOYEE_ID JOB_ID     DEPARTMENT_ID
----------- ---------- -------------
        172 SA_REP                80
        173 SA_REP                80
        174 SA_REP                80
        175 SA_REP                80
        176 SA_REP                80
        176 SA_REP                80
        176 SA_MAN                80
        177 SA_REP                80
        178 SA_REP
        179 SA_REP                80
        180 SH_CLERK              50

EMPLOYEE_ID JOB_ID     DEPARTMENT_ID
----------- ---------- -------------
        181 SH_CLERK              50
        182 SH_CLERK              50
        183 SH_CLERK              50
        184 SH_CLERK              50
        185 SH_CLERK              50
        186 SH_CLERK              50
        187 SH_CLERK              50
        188 SH_CLERK              50
        189 SH_CLERK              50
        190 SH_CLERK              50
        191 SH_CLERK              50

EMPLOYEE_ID JOB_ID     DEPARTMENT_ID
----------- ---------- -------------
        192 SH_CLERK              50
        193 SH_CLERK              50
        194 SH_CLERK              50
        195 SH_CLERK              50
        196 SH_CLERK              50
        197 SH_CLERK              50
        198 SH_CLERK              50
        199 SH_CLERK              50
        200 AD_ASST               10
        200 AC_ACCOUNT            90
        200 AD_ASST               90

EMPLOYEE_ID JOB_ID     DEPARTMENT_ID
----------- ---------- -------------
        201 MK_MAN                20
        201 MK_REP                20
        202 MK_REP                20
        203 HR_REP                40
        204 PR_REP                70
        205 AC_MGR               110
        206 AC_ACCOUNT           110

117 rows selected.

③intersect

SQL> select employee_id,job_id
  2  from employees
  3  intersect
  4  select employee_id,job_id
  5  from job_history;

EMPLOYEE_ID JOB_ID
----------- ----------
        176 SA_REP
        200 AD_ASST

④minus

SQL> select employee_id
  2  from employees
  3  minus
  4  select employee_id
  5  from job_history;

EMPLOYEE_ID
-----------
        100
        103
        104
        105
        106
        107
        108
        109
        110
        111
        112

EMPLOYEE_ID
-----------
        113
        115
        116
        117
        118
        119
        120
        121
        123
        124
        125

EMPLOYEE_ID
-----------
        126
        127
        128
        129
        130
        131
        132
        133
        134
        135
        136

EMPLOYEE_ID
-----------
        137
        138
        139
        140
        141
        142
        143
        144
        145
        146
        147

EMPLOYEE_ID
-----------
        148
        149
        150
        151
        152
        153
        154
        155
        156
        157
        158

EMPLOYEE_ID
-----------
        159
        160
        161
        162
        163
        164
        165
        166
        167
        168
        169

EMPLOYEE_ID
-----------
        170
        171
        172
        173
        174
        175
        177
        178
        179
        180
        181

EMPLOYEE_ID

-----------
        182
        183
        184
        185
        186
        187
        188
        189
        190
        191
        192

EMPLOYEE_ID
-----------
        193
        194
        195
        196
        197
        198
        199
        202
        203
        204
        205

EMPLOYEE_ID
-----------
        206

100 rows selected.
时间: 2024-10-18 08:26:26

【练习】集合运算符的相关文章

小谈KVC中KeyPath的集合运算符

由于知识点比较简单,这里不再陈述一大堆的原理,直入主题. KVC中的集合运算符有以下三类: 1.简单集合运算符:@avg.@sum.@max.@min.@count (只能用在集合对象中,对象属性必须为数字类型)  2.对象操作符:                @unionOfObjects:返回指定属性的值的数组,不去重                @distinctUnionOfObjects:返回指定属性去重后的值的数组  3.数组 / 集体操作符:跟对象操作符很相似,只不过是在NSA

集合运算符之全集、交集、补集【weber出品必属精品】

集合的概念 与数学中的全集.交集.补集的概念是一样的 常用的集合运算符 集合运算符的作用:把两个查询构造为一个联合查询 1. 全集:求连个查询的全集 union all:将两个查询的所有数据全部列出,不进行排序,不去掉重复的部分 SQL> create table t1 as select * from emp where deptno in (10,20); Table created. SQL> create table t2 as select * from emp where dept

oracle 集合运算符

UNION/UNION ALL 并集 INTERSECT 交集 MINUS 差集 我们知道group by 增强中 http://www.cnblogs.com/liuwt365/p/4181256.html group by rollup(a,b) = group by a,b + group by a + group by null 所以我们应该写sql语句应该为: 1 SQL> select deptno,job,sum(sal) from emp group by deptno,job

Oracle的集合运算符

Oracle的集合运算符有并集union.union all,交集intersect,差集minus 先建表myemp,进行集合运算的测试 create table myemp as select * from emp where empno = 7934; 并集 union all不过滤掉集合中重复的数据 union过滤掉集合中重复的数据 1 select * from emp 2 union all 3 select * from myemp; 4 5 select * from emp 6

oracle开发学习篇之集合运算符以及集合异常捕获

--取出集合;长度 declare type list_nested is table of varchar2(50) not null; v_all list_nested := list_nested('a','b','c','d','c','d'); begin dbms_output.put_line('list leng :' || cardinality(v_all)); end; / --从集合中取出取消重复的元素 declare type list_nested is table

Delphi 的运算符列表

分类 运算符 操作 操作数 结果类型 范例 算术运算符 + 加 整数,实数 整数,实数 X + Y - 减 整数,实数 整数,实数 Result - 1 * 乘 整数,实数 整数,实数 P * InterestRate / 实数除 整数,实数 实数 X / 2 div 整数除 整数 整数 Total div UnitSize mod 取模 整数 整数 Y mod 6 +(一元) 符号等同 整数,实数 整数,实数 +7 -(一元) 符号相反 整数,实数 整数,实数 -X 布尔运算符 not 否定

Python自动化运维之2、运算符与数据类型

python对象的相关术语: python程序中保存的所有数据都是围绕对象这个概念展开的: 程序中存储的所有数据都是对象 每个对象都有一个身份.一个类型和一个值 例如,school='MaGe Linux'会以'MaGe Linux'创建一个字符串对象,其身份是指向它在内存中所处位置的指针(其在内存中的地址),而school就是引用这个具体位置的名称 对象的类型也称对象的类别,用于描述对象的内部表示及它支持的方法和操作 创建特定类型的对象时,有时也将该对象称为该类型的实例 实例被创建后,其身份和

详解SQL集合运算

以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础]04.表表达式-上篇 [T-SQL基础]04.表表达式-下篇 [T-SQL基础]05.集合运算 [T-SQL基础]06.透视.逆透视.分组集 [T-SQL基础]07.数据修改 [T-SQL基础]08.事务和并发 [

Delphi 的运算符列表,运算符及优先级表格 good

Delphi 的运算符列表 分类 运算符 操作 操作数 结果类型 范例 算术运算符 + 加 整数,实数 整数,实数 X + Y - 减 整数,实数 整数,实数 Result - 1 * 乘 整数,实数 整数,实数 P * InterestRate / 实数除 整数,实数 实数 X / 2 div 整数除 整数 整数 Total div UnitSize mod 取模 整数 整数 Y mod 6 +(一元) 符号等同 整数,实数 整数,实数 +7 -(一元) 符号相反 整数,实数 整数,实数 -X