oracle中的集合操作符

简介: oracle中有一类操作符是对集合进行操作的,我们称之为集合操作符(set operator),我们在前面已经分别介绍了每个集合操作符,这里简单总结一下,oracle中的集合操作符号主要有: union(all) 是用来将多个select语句的结果集合进行合并处理。

oracle中有一类操作符是对集合进行操作的,我们称之为集合操作符(set operator),我们在前面已经分别介绍了每个集合操作符,这里简单总结一下,oracle中的集合操作符号主要有:

  1. union(all) 是用来将多个select语句的结果集合进行合并处理。其中union会压缩各个结果集中的重复数据,而union all则不会。
  2. intersect 是用来求两个集合的交集
  3. minus是用来从一个结果集中去除另一个集合中包含的部分

对与各个集合操作符, 需要注意的地方的如下:

  1. 除了union all之外的所有集合操作符号都会进行默认排序和去除重复行,这需要占用一定的资源,只有union all回将数据以原始的方式呈现出来。所以在对oracle中进行性能优化时尽量使用union all 而不是 union。
  2. 对于每一个查询中,必须要具有相同的列的数目和列的类型,但没有必要使列名相同。如果类型不一样,可以使用类型转换函数来转换。注意这里oracle不会进行隐式转换,必须进行手动转换,如果列的个数不一样,可以使用替代列的方式来充当。

    例如:
    select ename,sal from emp where sal > 2000
    union all
    select to_char(empno),0 from emp where sal >3500;
    这里我们使用了类型转换函数来to_char将empno转由数值型换为字符型,并给出了一个填充列0,来凑足和前一个查询的相同的列数。

  3. 可以使用order by 来进行手动的排序,但只能出现在最后一个查询的后面。而且order by 使用到的列只能使用第一个查询的列名或者别名,或者使用列的计数器。
目录
相关文章
|
Oracle 关系型数据库 CDN
|
Oracle 关系型数据库 Java
|
SQL Oracle 关系型数据库
Oracle集合运算
SQL> --什么是集合运算? SQL> --查询10号部门和20号部门的员工 SQL> --第一种 SQL> select *   2  from emp   3  where deptno=10 or deptno=20;      EMPNO ENAME      JOB              MGR HIREDATE         SAL 
1002 0
|
Oracle 关系型数据库 Perl
Oracle——13集合
PL/SQL语言的集合类似于数组,是管理多行数据必须的结构体。集合就是列表,可能有序,也可能无序。PL/SQL的集合类型有:联合数组、嵌套表和可变数组三种。   1、联合数组 联合数组类似于C语言中的数组。
894 0
|
SQL 监控 Oracle
Oracle常用sql语法集合
搜集了一些常用的sql语句,分享一下 ^_^ 表:   select * from cat;   select * from tab;   select table_name from user_tables; 视图:   select text from ...
696 0
|
Oracle 关系型数据库
Oracle学习(七):集合运算
本文主要讲Oracle集合运算
132 0
|
存储 SQL 关系型数据库
5.创建表,使用alter进行表信息的增删改,Oracle回收站,集合运算
 1  Oracle基于用户的管理方案 2 DDL语句可以管理数据库的对象有:视图   索引  序列  同义词   约束 3  创建一个表,有2个条件(1 有权限;2有表空间)    Oracle给你提供了默认的resource. 4 创建表,表信息的增删改,Oracle回收站 DDL        
1126 0