ORACLE SQL SET 运算符
运算符指的是将多个查询用 SET 操作符连接组成一个新的查询。
1.UNION/UNION ALL
2.INTERSECT
3.MINUS
下面看下操作符的作用:
UNION 操作符
这个的意思就是:UNION 操作符返回两个查询的结果集的并集。也就是说把两边的所有数据合并起来,把重复的内容去掉。
代码举例:
SELECT employee_id, job_id
FROM employees
UNION
SELECT employee_id, job_id
FROM job_history;
部分效果演示:
UNION ALL 操作符
这个的意思就是:UNION ALL 操作符返回两个查询的结果集的并集。对于两个结果集的重复部分,不去重。
代码举例:
SELECT employee_id, job_id, department_id
FROM employees
UNION ALL
SELECT employee_id, job_id, department_id
FROM job_history
ORDER BY employee_id;
部分效果演示:
INTERSECT 操作符
这个的意思就是:
INTERSECT 操作符返回两个结果集的交集,也就是说把两边的数据合并起来然后显示相同的部分。
代码示例:
SELECT employee_id, job_id
FROM employees
INTERSECT
SELECT employee_id, job_id
FROM job_history;
效果图:
MINUS 操作符
这个的意思就是:
MINUS操作符:返回两个结果集的差集,也就是说它运用在两个SQL语句上,第一条SQL语句所产生的结果,再看这些结果有没有在第二个SQL语句的结果中。有的话,那么这些数据就会被去除掉,而不会在最后的结果中出现。如果第二个SQL语句中的结果并没有存在于第一个SQL语句所产生的结果内,那么这些数据就会不显示。
代码示例:
SELECT employee_id,job_id
FROM employees
MINUS
SELECT employee_id,job_id
FROM job_history;
部分效果图:
注意事项:
在SELECT 列表中的列名和表达式在数量和数据类型上要相对应
括号可以改变执行的顺序
ORDER BY 子句:
只能在语句的最后出现
可以使用第一个查询中的列名, 别名或相对位置