`
wei5201
  • 浏览: 187586 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle union /minus /instersct 函数的使用

阅读更多
如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。

union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。



Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

Union All:对两个结果集进行并集操作,包括重复行,不进行排序;

Intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;

Minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。

可以在最后一个结果集中指定Order by子句改变排序方式。

Intersect与Minus用法与union相同!


例如:

select employee_id,job_id from employees   
union   
select employee_id,job_id from job_history  
select employee_id,job_id from employees
union
select employee_id,job_id from job_history


以上将两个表的结果联合在一起。这两个例子会将两个select语句的结果中的重复值进行压缩,也就是结果的数据并不是两条结果的条数的和。如果希望即使重复的结果显示出来可以使用union all,例如:

2.在oracle的scott用户中有表emp

select * from emp where deptno >= 20  
union all   
select * from emp where deptno <= 30  
select * from emp where deptno >= 20
union all
select * from emp where deptno <= 30

这里的结果就有很多重复值了。



有关union和union all关键字需要注意的问题是:

union 和 union all都可以将多个结果集合并,而不仅仅是两个,你可以将多个结果集串起来。
使用union和union all必须保证各个select 集合的结果有相同个数的列,并且每个列的类型是一样的。但列名则不一定需要相同,oracle会将第一个结果的列名作为结果集的列名。例如下面是一个例子:

select empno,ename from emp   
union   
select deptno,dname from dept   
select empno,ename from emp
union
select deptno,dname from dept 

我们没有必要在每一个select结果集中使用order by子句来进行排序,我们可以在最后使用一条order by来对整个结果进行排序。例如:

select empno,ename from emp   
union   
select deptno,dname from dept   
order by ename;  

分享到:
评论

相关推荐

    Oracle集合操作函数union、intersect、minus.docx

    Oracle 集合操作函数 union、intersect、minus Oracle 集合操作函数是用于合并多条 SELECT 语句的结果的函数,包括 UNION、INTERSECT、MINUS 等。这些函数可以将多个查询结果合并成一个结果集,以便进一步处理和...

    MINUS函数和OVER函数[参考].pdf

    本文将详细讲解如何使用 MINUS 函数和 OVER 函数,直接通过视图实现两个记录集的比较。 MINUS 函数 MINUS 函数是 Oracle 中的一个集合操作符,用于从一个查询结果中删除另一个查询结果中的记录。MINUS 函数可以...

    Oracle_plsql常用方法汇总

    日期函数是 Oracle PL/SQL 中的一种常用的函数,用于处理日期和时间相关的操作。下面是一些常用的日期函数: 1. SYSDATE:返回当前系统日期 2. ADD_MONTHS:返回日期加(减)指定月份后(前)的日期 3. LAST_DAY:返回...

    Oracle高级操作函数学习笔记

    在提供的内容中,通过DECODE函数实现了工资的区间判断显示,使用CASE语句完成了加薪规则的计算,还演示了如何使用UNION、INTERSECT和MINUS进行集合操作。这些知识点展示了Oracle在数据处理方面的灵活性和高效性,...

    Mastering oracle SQL

    Oracle SQL还包括联接操作,如内连接、外连接、交叉连接等,以及子查询和集合操作,如UNION、INTERSECT和MINUS。这些高级查询技术对于处理复杂的数据关系至关重要。书中会深入讨论这些主题,并给出实例来帮助读者...

    oracle函数大全中文api文档

    "Oracle函数大全中文API文档"是一个非常实用的资源,它提供了对Oracle数据库所有内置函数的详尽解释,帮助开发者和DBA快速理解和使用这些函数。 1. **日期与时间函数**: Oracle提供了处理日期和时间的大量函数,...

    Oracle函数文档

    - **高级查询**:子查询,UNION/UNION ALL合并查询结果,INTERSECT找出交集,MINUS找出差集。 5. **事务和并发控制**: - **事务管理**:COMMIT提交,ROLLBACK回滚,SAVEPOINT设置保存点。 - **锁定机制**:ROW...

    oracle 110个常用函数.zip

    10. 连接查询和嵌套查询中使用的函数,如CONNECT_BY_ROOT()和LEVEL用于层次查询,而子查询中可能用到的任何函数,如MINUS, INTERSECT, UNION等。 11. 逻辑函数:AND, OR, NOT用于逻辑运算,DECODE()和NVL2()提供...

    oracle4的表查询和基本函数.docx

    本文将深入探讨Oracle4中的表查询和基本函数。 首先,我们关注的是基本查询。在Oracle中,查询多表通常涉及到联接操作。以示例中的雇员表(EMP)和部门表(DEPT)为例,我们可以使用JOIN语句来获取雇员及其所在部门...

    Oracle函数及常用sql

    本篇文章将深入探讨Oracle中的基本函数以及常用SQL查询,以帮助初学者快速入门,并为日常使用提供参考。 一、Oracle基本函数 1. **字符串函数**: - `CONCAT()`:连接两个或多个字符串。 - `SUBSTR()`:从字符串...

    oracle常用函数 CHM

    以上只是Oracle众多函数中的一部分,实际应用中还有更多如正则表达式处理的`REGEXP_LIKE()`,时间间隔处理的`INTERVAL`,以及用于集合操作的`UNION`、`INTERSECT`和`MINUS`等。学习并熟练掌握这些函数,能极大地提升...

    oracle中sql函数小结

    Oracle数据库作为一款广泛使用的数据库管理系统,在进行数据处理与分析时提供了丰富的内置函数,这些函数可以极大地简化SQL查询的编写工作,并提高查询效率。本文将根据给定的内容对Oracle数据库中的一些重要SQL函数...

    Oracle的110个自带函数总结归纳

    Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和丰富的内置函数是其核心优势之一。在Oracle中,函数用于处理各种类型的数据,包括数学运算、字符串处理、日期时间操作、逻辑判断等。以下是对...

    Oracle和SqlServer语法区别

    PL/SQL函数和过程可以使用Oracle的函数和过程语法来编写,而Transact-SQL函数和过程则需要使用SqlServer的函数和过程语法。 例如,Oracle的PL/SQL函数可以这样编写: ```plsql CREATE OR REPLACE FUNCTION get_...

    Oracle常用关键词和函数

    UNION ALL则保留所有行,不进行去重操作,因此在两个查询结果不包含重复行时,使用UNION ALL通常更快。 JOIN操作在数据库查询中扮演着重要角色。内连接(JOIN ON)返回两个表中满足特定条件的匹配行。左连接(LEFT ...

    Oracle数据库常用sql语句的分类和常用函数.docx

    根据提供的文档信息,本文将详细解析Oracle数据库中的关键SQL语句分类、常用SQL语句以及Oracle函数的应用场景。此外,还将简要介绍Oracle数据库的一些基本管理命令,如启动与关闭服务、用户管理等。 ### 一、Oracle...

    异种数据库函数和标准SQL语法比较Oracle与SqlServer.rar

    - Oracle和SQL Server都支持`JOIN`,但Oracle的`MINUS`和`INTERSECT`操作在SQL Server中可以用`NOT EXISTS`和`INNER JOIN`或`UNION ALL`替代。 通过了解这些差异,开发者可以在跨平台项目中更高效地编写SQL语句,...

Global site tag (gtag.js) - Google Analytics