作者:yuliu预留 | 来源:互联网 | 2014-07-09 16:02
Oracle集合操作符union、unionall、intersect和minus废话少说直奔主题:如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者unionall关键字。union(或称为联合)的作用是将多个...SyntaxHighl
Oracle集合操作符union、union all、intersect和minus
废话少说直奔主题:
如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字。union(或称为联合)的作用是将多个结果合并在一起显示出来。
union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复。 www.2cto.com
1. union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;
2. union All:对两个结果集进行并集操作,包括重复行,不进行排序;
3. intersect:对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
4. minus:对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序。
可以在最后一个结果集中指定Order by子句改变排序方式。
例:
1. union:
[sql]
SELECT * FROM emp
WHERE sal <1500
UNION
SELECT * FROM emp
WHERE sal BETWEEN 1000 AND 2000
ORDER BY 1; www.2cto.com
2. union all:
[sql]
SELECT * FROM emp
WHERE sal <1500
UNION ALL
SELECT * FROM emp
WHERE sal BETWEEN 1000 AND 2000
ORDER BY 1;
3. intersect:
[sql]
SELECT deptno
FROM dept
INTERSECT
SELECT DISTINCT deptno
FROM emp;
[sql]
DEPTNO
------
10
20
30
www.2cto.com
4. minus:
[sql]
SELECT deptno
FROM dept
MINUS
SELECT DISTINCT deptno
FROM emp;
[sql]
DEPTNO
------
40