合并查询
为了合并多个select语句的结果,可以使用集合操作符union,union all,intersect(交叉)和minus(减去)。语法如下:
Select 语句1 [union | union all | intersect | minus] select 语句2 ……
这些集合操作符具有相同的优先级,当同时使用多个操作符时,会按照从左到右的方式引用集合操作符。当使用集合操作符时,必须确保不同查询的列个数和数据类型都要匹配。另外,使用集合操作符有以下一些限制:
l 对于lob,varray和嵌套表列来说,集合操作符是无效的。
l 对于long来说,union,intersect,minus操作符是无效的。
l 如果选择列表包含了表达式,则必须要为其指定列别名。
A: union
Union操作符用于获取两个结果集的并集。当使用该操作符时,会自动去掉结果集中的重复行,并且会以第一列的结果进行升序排序。(如:表1中有数据为(1,2,3,4),表2中有数据为(1,2,6,7),那么最终结果为(1,2,3,4,6,7)
即相当于视图阴影部分为:
举例:显示工资高于2500的雇员和岗位为“manager”的雇员
select * from emp where sal>2500 union select * from emp where lower(JOB)='manager';
B: union all
Union all 操作符用于获取两个结果集的并集。但与union操作符不同,该操作符不会取消重复值,而且也不会以任何列进行排序。(如:表1中有数据为(1,2,3,4),表2中有数据为(1,2,6,7),那么最终结果为(1,2,3,1,4,2,6,7)
即相当于视图阴影部分为:
举例:显示工资高于2500的雇员和岗位为“manager”的雇员
select * from emp where sal>2500 union all select * from emp where lower(JOB)='manager';
C: intersect
Intersect操作符用于获取两个结果集的交集。当使用该操作符时,只会显示同时存在于两个结果集中的数据,并且会以第一列进行升序排序。(如:表1中有数据为(1,2,3,4),表2中有数据为(1,2,6,7),那么最终结果为(1,2)
即相当于视图阴影部分为:
举例:显示工资高于2500的雇员和岗位为“manager”的雇员
select * from emp where sal>2500 intersect select * from emp where lower(JOB)='manager';
D: minus
Minus操作符用于获取两个结果集的差集。当使用该操作符时,只会显示在第一个结果集中存在,在第二个结果集中不存在的数据,并且会以第一列进行排序。(如:表1中有数据为(1,2,3,4),表2中有数据为(1,2,6,7),那么最终结果为(6,7)即相当于视图阴影部分为:
举例:显示工资高于2500但岗位不是“manager”的雇员
select * from emp where sal>2500 minus select * from emp where lower(JOB)='manager';
- 大小: 6.3 KB
- 大小: 33.2 KB
- 大小: 18.2 KB
- 大小: 1.6 KB
分享到:
相关推荐
Oracle多行记录合并/连接/聚合字符串的几种方法
Oracle时间区间段合并统计的算法
oracle纯SQL语句多行合并一行,中间用“,”隔开,方便快速的显示在页面上
在程序设计过程中,往往遇到比较两个记录集的差异。如,判断原来传入的订单资料与后来传入的订单资料之间的差异,并且将差异的...本文主要论述利用ORACLE的MINUS函数和OVER函数,直接通过视图实现两个记录集的比较。
多行记录合并 采用的是方法4,希望对你们有用
Oracle关系型数据库管理系统是世界上流行的关系数据库,它是一个极其强大、灵活和复杂的系统,本文向大家介绍使用SQL查两个Oracle数据表查询的相同数据的方法。第一种方法:利用操作符intersect,intersect操作符...
Oracle数据库的合并重组.pdf
存在多张不同表空间,这时候需要把所有的表空间都合并成一个表空间
很多场合我们都会用到oracle的列合并,oracle提供了如下一些方法用来实现列合并: 一、Oracle 10G以前使用WMSYS.WM_CONCAT: wmsys.wm_concat将字段的值用”,”来隔开。 select id,wm_concat(name) from tab_name ...
oracle异库同表名的两个数据库中数据合并或数据表结构的修改
详细的介绍Oracle Biee RPD合并
oracle 菜单查询,注意使用左联接查询,获取菜单栏的菜单设置
您可能感兴趣的文章:常用的Oracle doc命令(收藏)Oracle 多行记录合并/连接/聚合字符串的几种方法Oracle中字符串连接的实现方法php连接oracle数据库及查询数据的方法plsql连接oracle数据库报ora 12154错
详细的介绍Oracle Biee Catalog 合并
oracle10g,9i多行合并一行函数
1.被集合字段范围小且固定型 灵活性 性能 难度 2.固定表固定字段函数法 灵活性 性能 难度 3.灵活表函数法 灵活性 性能 难度 4.一条SQL法 灵活性
NULL 博文链接:https://czjxdm.iteye.com/blog/466948
本文实例讲述了oracle实现多行合并的方法。分享给大家供大家参考。具体分析如下: 在写sql时,经常会有将某列的字段合并起来,比如将某人名下每个月的工资列示,但是每个人只能占一行。 像这种场景,可能用行列转换...