使用集合运算符
1、集合操作
关键字 | 含义 | 描述 |
---|---|---|
UNION | 联合 | 返回两个查询的结果集的并集,消除重复行 |
UNION ALL | 完全联合 | 返回两个查询的结果集的并集,包括所有重复行 |
INTERSECT | 相交 | 返回两个查询公共的行 |
MINUS | 相减 | 从第一个查询结果减去第二个查询结果,如果有相交部分就减去相交部分;否则和第一个查询结果没有区别 |
集合操作注意事项
- 在SELECT列表中的列名和表达式在数量上必须匹配
- 第二个查询中的每一列的数据类型必须与第一个查询其对应的列的数据类型相匹配
- 可以用括号来改变执行顺序
- ORDER BY子句:
- 只能在语句的最后出现
- 可以使用第一个查询中的列名,别名或相对位置
- 除UNION ALL之外,系统会自动删除重复的记录
- 列名为第一个查询返回的结果
- 除UNION ALL之外,系统自动按照第一个查询中的第一个列的升序排列
2、UNION操作符与UNION ALL操作符
UNION
SQL> select deptno
2 from emp
3 union
4 select deptno
5 from dept;
DEPTNO
----------
10
20
30
40
50
60
70
7 rows selected.
UNION ALL
SQL> select deptno
2 from emp
3 union all
4 select deptno
5 from dept;
DEPTNO
----------
20
30
30
20
30
30
10
20
10
30
20
30
20
10
10
20
30
40
50
60
70
21 rows selected.
3、INSERSECT操作符
SQL> select deptno
2 from emp
3 intersect
4 select deptno
5 from dept;
DEPTNO
----------
10
20
30
4、MINUS操作符
SQL> select deptno
2 from dept
3 minus
4 select deptno
5 from emp;
DEPTNO
----------
40
60
70