Oracle中两个表的并集操作(oracle两个表取并集)

在Oracle数据库中,我们经常需要对两个表进行合并,得到它们的并集。Oracle提供了多种方法来实现这种操作。在本文中,我们将介绍如何使用UNION ALL和UNION来实现两个表的并集操作,并提供相应的代码实例。

一、UNION ALL操作

UNION ALL操作用于将两个SELECT语句的结果合并在一起,返回所有行。它不会删除任何重复的行,也不会对结果进行排序。

下面是一个使用UNION ALL操作的例子:

SELECT *
FROM table1
UNION ALL
SELECT *
FROM table2;

这个语句将table1和table2两个表中的所有行合并在一起,并返回所有的行。

代码示例:

CREATE TABLE table1 (
id INT,
name VARCHAR2(50)
);

INSERT INTO table1 VALUES (1, 'Tom');
INSERT INTO table1 VALUES (2, 'Jerry');
INSERT INTO table1 VALUES (3, 'Lucy');

CREATE TABLE table2 (
id INT,
name VARCHAR2(50)
);
INSERT INTO table2 VALUES (2, 'Jerry');
INSERT INTO table2 VALUES (4, 'Mike');
INSERT INTO table2 VALUES (5, 'John');

SELECT *
FROM table1
UNION ALL
SELECT *
FROM table2;

该代码会返回以下结果:

ID  NAME
1 Tom
2 Jerry
3 Lucy
2 Jerry
4 Mike
5 John

二、UNION操作

UNION操作也是用于将两个SELECT语句的结果合并在一起,但它会删除重复的行,并对结果进行排序。

下面是使用UNION操作的例子:

SELECT *
FROM table1
UNION
SELECT *
FROM table2;

这个语句将table1和table2两个表中的所有行合并在一起,并删除重复的行。如果需要按照某个列进行排序,可以使用ORDER BY子句指定,例如:

SELECT *
FROM table1
UNION
SELECT *
FROM table2
ORDER BY id;

代码示例:

CREATE TABLE table1 (
id INT,
name VARCHAR2(50)
);

INSERT INTO table1 VALUES (1, 'Tom');
INSERT INTO table1 VALUES (2, 'Jerry');
INSERT INTO table1 VALUES (3, 'Lucy');

CREATE TABLE table2 (
id INT,
name VARCHAR2(50)
);
INSERT INTO table2 VALUES (2, 'Jerry');
INSERT INTO table2 VALUES (4, 'Mike');
INSERT INTO table2 VALUES (5, 'John');

SELECT *
FROM table1
UNION
SELECT *
FROM table2;

该代码会返回以下结果:

ID  NAME
1 Tom
2 Jerry
3 Lucy
4 Mike
5 John

总结

在Oracle中,我们可以使用UNION ALL和UNION操作来实现两个表的并集操作。UNION ALL用于合并两个SELECT语句的结果,返回所有行;UNION操作也用于合并两个SELECT语句的结果,但它会删除重复的行,并对结果进行排序。我们可以根据实际需要选择合适的操作方式。


数据运维技术 » Oracle中两个表的并集操作(oracle两个表取并集)