oracle 中INTERSECT和union 的区别
时间: 2023-09-10 12:08:40 浏览: 154
Oracle 中的 UNION 和 INTERSECT 都是用于结合两个 SELECT 语句结果集的操作符,但它们的作用不同。
UNION 操作符将两个 SELECT 语句的结果集合并成一个结果集,相当于两个结果集的并集。合并后的结果集中不包含重复的行。其语法如下:
```
SELECT column1, column2, ...
FROM table_name1
UNION
SELECT column1, column2, ...
FROM table_name2;
```
其中,column1, column2, ... 是要选择的列名,可以是一个或多个;table_name1 和 table_name2 是要查询的表名。
需要注意的是,UNION 操作符只能用于两个 SELECT 语句,且两个 SELECT 语句的列数、数据类型和顺序必须相同。
而 INTERSECT 操作符返回同时出现在两个结果集中的所有行,相当于两个结果集的交集。其语法如下:
```
SELECT column1, column2, ...
FROM table_name1
INTERSECT
SELECT column1, column2, ...
FROM table_name2;
```
其中,column1, column2, ... 是要选择的列名,可以是一个或多个;table_name1 和 table_name2 是要查询的表名。
需要注意的是,INTERSECT 操作符只能用于两个 SELECT 语句,且两个 SELECT 语句的列数、数据类型和顺序必须相同。另外,INTERSECT 操作符不会返回重复的行。
因此,UNION 和 INTERSECT 的主要区别在于它们的结果集合并方式不同,UNION 返回两个结果集的并集,而 INTERSECT 返回两个结果集的交集。
阅读全文