Oracle教程
Oracle练习题

Oracle中union和minus的用法

union可以合并集合(相加)

select * from emp where job='MANAGER'
union
select * from emp where job='SALESMAN'

Union在某些场合下相当于or或in,等同于如下代码:

select * from emp where job in('MANAGER','SALESMAN');或select * from emp where job='MANAGER' or job='SALESMAN';

不是所有的查询语句都可以进行union操作。

select * from emp union select * from dept;

使用union必须保证查询的结果集包含相同的列数。

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

使用unoin必须保证查询结果的字段含义相同。

使用unoin必须保证查询结果的字段的数据类型相同。

minus可以移出集合(相减)

● 查询部门编号为10和20的,去除薪水大于2000的(第一种方法)

select * from emp where deptno in(10, 20) and sal <=2000;

● 查询部门编号为10和20的,去除薪水大于2000的(第二种方法,使用minus) 

select * from emp where deptno in(10, 20)
minus
select * from emp where sal>2000

使用方法可以参考Union