集 Oracle 联合操作求交集求并集(oracle 交并)

Oracle 联合操作:求交集、求并集

在日常工作中,经常会涉及到多个数据集的合并,这时候就需要使用 Oracle 的联合操作,实现对数据集的并集与交集的查询。下面就介绍一下 Oracle 联合操作的用法。

1. 求并集

求并集即将两个数据集中的所有行合并成一个数据集,并且去除重复的记录。使用 UNION 关键字可实现两个或多个数据表的并集查询。 UNION 的语法格式如下:

SELECT column1, column2…

FROM table1

UNION

SELECT column1, column2…

FROM table2;

其中,column1, column2…为要查询的数据列,table1, table2为要查询的数据表。通过 UNION 操作符将两个数据集分别查询出来,并合并去重,最终得到一个并集数据集。

例如,查询 A 表和 B 表的所有记录,可以使用如下 SQL 语句:

SELECT id, name

FROM A

UNION

SELECT id, name

FROM B;

2. 求交集

求交集即将两个数据集中相同的行记录取出,形成一个新的数据集。使用 INTERSECT 关键字可实现两个数据表的交集查询。 INTERSECT 的语法格式如下:

SELECT column1, column2…

FROM table1

INTERSECT

SELECT column1, column2…

FROM table2;

其中,column1, column2…为要查询的数据列,table1, table2为要查询的数据表。通过 INTERSECT 操作符将两个数据集分别查询出来,并取出相同的记录,最终得到一个交集数据集。

例如,查询 A 表和 B 表的公共记录,可以使用如下 SQL 语句:

SELECT id, name

FROM A

INTERSECT

SELECT id, name

FROM B;

总结

通过使用 UNION 和 INTERSECT 关键字,我们可以方便地得到两个或多个数据集的并集和交集。需要注意的是,如果数据集中有重复的记录,需要使用 DISTINCT 关键字去重,才能得到正确的结果。

代码示例:

下面给出一个完整的示例,包括建立 A 和 B 两个表,插入数据以及执行联合操作的 SQL 语句。

— 创建 A 表

CREATE TABLE A (

id NUMBER(10),

name VARCHAR2(50)

);

— 插入数据

INSERT INTO A VALUES (1, ‘Tom’);

INSERT INTO A VALUES (2, ‘Mary’);

INSERT INTO A VALUES (3, ‘Lucy’);

INSERT INTO A VALUES (4, ‘Peter’);

— 创建 B 表

CREATE TABLE B (

id NUMBER(10),

name VARCHAR2(50)

);

— 插入数据

INSERT INTO B VALUES (2, ‘Mary’);

INSERT INTO B VALUES (4, ‘Peter’);

INSERT INTO B VALUES (6, ‘John’);

— 输出 A 和 B 表的并集

SELECT id, name

FROM A

UNION

SELECT id, name

FROM B;

— 输出 A 和 B 表的交集

SELECT id, name

FROM A

INTERSECT

SELECT id, name

FROM B;


数据运维技术 » 集 Oracle 联合操作求交集求并集(oracle 交并)