集合查询
1.UNION
可以将多个查询结果集相加,形成一个结果集,其结果等同于集合运算中的并运算。会消除重复行。
2.UNION ALL
可以将多个查询结果集相加,形成一个结果集,其结果等同于集合运算中的并运算。不会消除重复行。
3.INTERSECT
和UNION类似,相当于集合运算的交运算。
例:
SQL> select * from emp where deptno in(10,20)
intersect
select * from emp where deptno in(20,30);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7369 SMITH CLERK 7902 1980/12/17 800.00 20
7566 JONES MANAGER 7839 1981/4/2 2975.00 20
7788 SCOTT ANALYST 7566 1987/4/19 3000.00 20
7876 ADAMS CLERK 7788 1987/5/23 1100.00 20
7902 FORD ANALYST 7566 1981/12/3 3000.00 20
4.MINUS
和UNION类似,找到两个集合的差集。返回第一个查询在第二个查询没有的记录。
SQL> select * from emp where deptno in(10,20)
2 minus
3 select * from emp where deptno in(20,30);
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7782 CLARK MANAGER 7839 1981/6/9 2450.00 10
7839 KING PRESIDENT 1981/11/17 5000.00 10
7934 MILLER CLERK 7782 1982/1/23 1300.00 10