SQL DML:複合問い合わせ(UNION)

概要

集合演算子
UNION
UNION ALL
MINUS/EXCEPT
INTERSECT

を用いて複数の問い合わせデータを組み合わせる問い合わせ

・列の数、データ型も同じである必要がある。
※サイズ、列名は違っていても良い。
・ORDER BY句は複合問い合わせ分の最後に1回だけ指定可能。
・最初のSELECT文の列名が表示される。
※最初のSELECT文の列名を指定
・UNION ALLを除き、第一列でソートされる。

UNION

重複無し
union2

SELECT * FROM 表1
UNION
SELECT * FROM 表2
※表1 + 表1
結果はソートされる

UNION ALL

重複有り
union
SELECT * FROM 表1
UNION ALL
SELECT * FROM 表2
※表1 + 表1
結果はソートされない

MINUS/EXCEPT

差分

minus

SELECT * FROM 表1
MINUS
SELECT * FROM 表2
※表1 – 表2

結果はソートされる

A表
値1
(NULL)
(NULL)

B表
値2
(NULL)

の場合、A表 MINUS B表の複合問い合わせ結果は、
値1
※(NULL)は返されない。(NULL)は1つの値として扱われる。

SELECT * FROM 表1
EXCEPT
SELECT * FROM 表2

INTERSECT

重複しているレコードのみ抽出
intersect
SELECT * FROM 表1
INTERSECT
SELECT * FROM 表1
結果はソートされる