集合演算子の使用30 / 50 問

集合演算子の前後のSELECT文を入れ替えると、返される行が変わる可能性がある集合演算子はどれですか。

AUNION
BUNION ALL
CINTERSECT
DMINUS✓
正解:D解説

MINUSは「1つ目の問合せの結果から、2つ目の問合せの結果に含まれる行を除いたもの」を返すため、前後を入れ替えると結果が変わります。
UNION・UNION ALL・INTERSECTは、前後を入れ替えても返される行の集合は変わりません。
集合A(1,2,3)と集合B(2,3,4)の場合

演算子A 演算子 BB 演算子 A
UNION1,2,3,41,2,3,4
UNION ALL1,2,3,2,3,42,3,4,1,2,3
INTERSECT2,32,3
MINUS14

UNION ALLは並び順が変わることがありますが、返される行の集合は同じです。
次の例では、集合演算子は左から順に評価されるため、括弧で集合A・集合Bをまとめています。

(SELECT 1 AS n FROM dual UNION ALL SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual)
MINUS
(SELECT 2 FROM dual UNION ALL SELECT 3 FROM dual UNION ALL SELECT 4 FROM dual);

         N
----------
         1

前後の問題