码迷,mamicode.com
首页 > 其他好文 > 详细

【练习】集合运算符

时间:2016-11-17 23:40:51      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:第一个   ted   size   --   cte   employees   sel   minus   min   

① 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.

 

【练习】集合运算符

标签:第一个   ted   size   --   cte   employees   sel   minus   min   

原文地址:http://www.cnblogs.com/tomatoes-/p/6075768.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!