SQL DML:複合問い合わせ(UNION)
概要
集合演算子
UNION
UNION ALL
MINUS/EXCEPT
INTERSECT
を用いて複数の問い合わせデータを組み合わせる問い合わせ
・列の数、データ型も同じである必要がある。
※サイズ、列名は違っていても良い。
・ORDER BY句は複合問い合わせ分の最後に1回だけ指定可能。
・最初のSELECT文の列名が表示される。
※最初のSELECT文の列名を指定
・UNION ALLを除き、第一列でソートされる。
UNION
重複無し
SELECT * FROM 表1
UNION
SELECT * FROM 表2
※表1 + 表1
結果はソートされる。
UNION ALL
重複有り
SELECT * FROM 表1
UNION ALL
SELECT * FROM 表2
※表1 + 表1
結果はソートされない。
MINUS/EXCEPT
差分
SELECT * FROM 表1
MINUS
SELECT * FROM 表2
※表1 – 表2
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
EXCEPT
SELECT * FROM 表2
INTERSECT
重複しているレコードのみ抽出
SELECT * FROM 表1
INTERSECT
SELECT * FROM 表1
結果はソートされる。