UNION,INTERSECT,MINUS集合演算子は2個の問い合わせ結果を1個の結果に結合する演算子です。以下に集合演算子を示します。UNION各々の問い合わせ結果の全ての行で、重複行は含まないものを返す。ALL各々の問い合わせ結果の全ての行で、重複行は含む。ソートについて集合演算子のソートについてINTERSECT各々の問い合わせ結果で共に存在する行で、重複行は含まない。MINUS最初の問い合わせ結果の行から、次の問い合わせで返る行を含まないもの。これらの演算子の説明をする為に、これまで使用してきたテーブルTM_商品を例にとって説明していきます。以下にテーブルの内容一覧を全て表示します。6000012行が選択されました。(各々の問い合わせ結果の全ての行で、重複行は含まないものを返す。600001行目のSELECT文は仕入単価が50,000円未満の商品を全て結果として返すものであり、商品コードが7,9,11,12です。3行目のSELECT文は仕入単価が40,000円未満の商品を選択し、商品コードが11となります。商品コードが11は重複行となり、結果として上記の4行しか返されません。以下の様に3個のSELECT文をUNIONで結合した例を示します。5行目のSELECT文は固定値としてのデータを結果に含める為のもので、SELECT句に並べるデータの個数は1行目及び3行目で返される列の個数に合わせなければなりません。60000列の個数を合わせなかった例を以下に示します。エラーが発生しました。(各々の問い合わせ結果の全ての行で、重複行は含む。ALLに変更すると、UNIONとの違いがはっきりすると思います。結果として返される商品コードが7,9,11,12は最初のSELECT文での結果の行であり、最後の商品コードが11が2番目のSELECT文の結果の行を示しています。BY句により返される結果をソートする場合は、結果の列の名称ではなく列の位置を指定しなければなりません。以下に商品コード及び、仕入単価でソートする様子を示します。BY句に列名を指定したものを示しています。エラーが発生しました。BY句の列名指定も以下の様に、副問い合わせにすれば可能になります。(各々の問い合わせ結果で共に存在する行で、重複行は含まない。)INTERSECTの例を以下に示します。この演算子は論理演算で言うところのAND演算の様な働きをします。1行目の仕入単価が40,000円より高いものと、3行目の仕入単価が50,000円未満のものとのANDをとっています。(最初の問い合わせ結果の行から、次の問い合わせで返る行を含まないもの。)MINUSの例を以下に示します。この演算子は最初のSELECT文の結果から、次のSELECT文の結果を差し引く様な働きをします。1行目はTM_商品の全てを返し、その結果から3行目の仕入単価が50,000円未満の商品を省く結果となります。980008行が選択されました。