专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

Oracle交集(intersect),并集(union union all ),差集(minus)区别

ins518 2024-10-23 12:46:55 技术文章 12 ℃ 0 评论

先创建2张表:

-- Create table

create table TEST_2016

(

A VARCHAR2(200),

B VARCHAR2(100),

C VARCHAR2(50)

);

-- Create table

create table TEST_2017

(

A VARCHAR2(200),

B VARCHAR2(100),

C VARCHAR2(50)

);

然后把以下数据插入test_2016:

INSERT INTO TEST_2016 (A,B) VALUES (1,'张三');

INSERT INTO TEST_2016 (A,B) VALUES (2,'李四');

INSERT INTO TEST_2016 (A,B) VALUES (3,'王五');

INSERT INTO TEST_2016 (A,B) VALUES (4,'赵六');

INSERT INTO TEST_2016 (A,B) VALUES (5,'钱八');

INSERT INTO TEST_2016 (A,B) VALUES (6,'李九');

INSERT INTO TEST_2016 (A,B) VALUES (7,'高十');

INSERT INTO TEST_2016 (A,B) VALUES (8,'笑十一');

然后把以下数据插入test_2017:

INSERT INTO TEST_2017 (A,B) VALUES (1,'张三');

INSERT INTO TEST_2017 (A,B) VALUES (2,'李四');

INSERT INTO TEST_2017(A,B) VALUES (3,'王五');

INSERT INTO TEST_2017 (A,B) VALUES (4,'赵六');

INSERT INTO TEST_2017 (A,B) VALUES (5,'钱八');

INSERT INTO TEST_2017 (A,B) VALUES (6,'李九');

INSERT INTO TEST_2017 (A,B) VALUES (7,'高十');

INSERT INTO TEST_2017 (A,B) VALUES (8,'笑十一');

INSERT INTO TEST_2017 (A,B) VALUES (9,'笑十二');

1、求交集( INTERSECT 用法)

然后比对数据:

select b from test_2017

INTERSECT

select b from test_2016;

结果:

高十

李九

李四

钱八

王五

笑十一

张三

赵六

2、并集(union union all)

然后比对数据:

select b from test_2017

union

select b from test_2016;

结果:

高十

李九

李四

钱八

王五

笑十二

笑十一

张三

赵六

然后比对数据:

select b from test_2017

union all

select b from test_2016;

结果(注意:union all 不会合并相同项):

张三

李四

王五

赵六

钱八

李九

高十

笑十一

笑十二

张三

李四

王五

赵六

钱八

李九

高十

笑十一

3、取差集(minus)

然后比对数据:

select b from test_2017

Minus

select b from test_2016;

结果:

笑十二

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表