1. 程式人生 > 其它 >Oracle交集(intersect),並集(union union all ),差集(minus)區別

Oracle交集(intersect),並集(union union all ),差集(minus)區別

  先建立2張表:

  -- Create table

  create table TEST_2021

  (

  A VARCHAR2(200),

  B VARCHAR2(100),

  C VARCHAR2(50)

  );

  -- Create table

  create table TEST_2021

  (

  A VARCHAR2(200),

  B VARCHAR2(100),

  C VARCHAR2(50)

  );

  然後把以下資料插入test_2021:

  INSERT INTO TEST_2021 (A,B) VALUES (1,'張三');

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

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

  INSERT INTO TEST_2021 (A,B) VALUES (4,'趙六');

  INSERT INTO TEST_2021 (A,B) VALUES (5,'錢八');

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

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

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

  然後把以下資料插入test_2021:

  INSERT INTO TEST_2021 (A,B) VALUES (1,'張三');

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

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

  INSERT INTO TEST_2021 (A,B) VALUES (4,'趙六');

  INSERT INTO TEST_2021 (A,B) VALUES (5,'錢八');

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

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

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

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

  1、求交集( INTERSECT 用法)

  然後比對資料:

  select b from test_2021

  INTERSECT

  select b from test_2021;

  結果:

  高十

  李九

  李四

  錢八

  王五

  笑十一

  張三

  趙六

  2、並集(union union all)

  然後比對資料:

  select b from test_2021

  union

  select b from test_2021;

  結果:

  高十

  李九

  李四

  錢八

  王五

  笑十二

  笑十一

  張三

  趙六

  然後比對資料:

  select b from test_2021

  union all

  select b from test_2021;

  結果(注意:union all 不會合並相同項):

  張三

  李四

  王五

  趙六

  錢八

  李九

  高十

  笑十一

  笑十二

  張三

  李四

  王五

  趙六

  錢八

  李九

  高十

  笑十一

  3、取差集(minus)

  然後比對資料

  select b from test_2021

  Minus

  select b from test_2021;

  結果:

  笑十二