|
 |
|
|
複数のSELECT文の結果をマージする(UNION、UNION ALL) |
|
スポンサード リンク
複数のSELECT文の結果をマージするには、UNION、またはUNION ALLを使用する
UNION |
SELECT結果をマージします。ALLが無い場合、マージ後に重複レコードは排除されます。
また、SELECT結果で取得する列は、それぞれ同じ列数でなければなりません
|
UNION ALL |
サンプル表「emp01」データ
|
SQL> select * from emp01;
EMP DEP JOB FIRST_NAME LAST_NAME SALARY
--- --- --- ---------- ---------- ----------
E01 D01 J01 名字1 名前1 100
E02 D01 J01 名前2 名前2 250 |
サンプル表「emp02」データ
|
SQL> select * from emp02;
EMP DEP JOB FIRST_NAME LAST_NAME SALARY
--- --- --- ---------- ---------- ----------
E02 D01 J01 名前2 名前2 250
E03 D02 J02 名前3 名前3 200
E04 D02 J03 名前4 名前4 200 |
例1) 表「emp01」と表「emp02」のSELECT結果をマージします(UNION ALL)
|
SQL> select * from emp01
2 union all
3 select * from emp02;
EMP DEP JOB FIRST_NAME LAST_NAME SALARY
--- --- --- ---------- ---------- ----------
E01 D01 J01 名字1 名前1 100
E02 D01 J01 名前2 名前2 250
E02 D01 J01 名前2 名前2 250
E03 D02 J02 名前3 名前3 200
E04 D02 J03 名前4 名前4 200 |
表「emp01」と表「emp02」のSELECTした列数が同じでないとUNIONはできない
例2) 表「emp01」と表「emp02」のSELECT結果をマージします(UNION)
|
SQL> select * from emp01
2 union
3 select * from emp02;
EMP DEP JOB FIRST_NAME LAST_NAME SALARY
--- --- --- ---------- ---------- ----------
E01 D01 J01 名字1 名前1 100
E02 D01 J01 名前2 名前2 250
E03 D02 J02 名前3 名前3 200
E04 D02 J03 名前4 名前4 200 |
|
スポンサード リンク
|
|
|
|
|