令和2年度秋期 応用情報技術者試験 午前 問29
“東京在庫”表と“大阪在庫”表に対して,SQL文を実行して得られる結果はどれか。ここで,実線の下線は主キーを表す。〔SQL文〕SELECT 商品コード, 在庫数 FROM 東京在庫 UNION ALL SELECT 商品コード, 在庫数 FROM 大阪在庫

※選択肢ア〜エは上の図表内に記載されています。
解答・解説を見る
正解:エ
AI解説
UNION ALLは、2つの問合せ結果を重複除去せずにそのまま全行結合する集合演算子である。したがって「東京在庫」表と「大阪在庫」表の全レコードが、商品コードが重複していてもそのまま全て出力され、結果件数は両表の行数の合計になる。 ア: 図中の選択肢アは重複行を除去した結果(UNIONの結果)に相当すると考えられ、重複を除去しないUNION ALLの仕様と一致しないため誤りである。 イ: 図中の選択肢イも一部の行が欠落または集約されているなど、全行をそのまま出力するUNION ALLの結果と整合しないため誤りである。 ウ: 図中の選択肢ウも件数や内容がUNION ALLの重複を除去しないという性質と一致しない結果であるため誤りである。 エ: 正しい。東京・大阪両方の在庫データが重複除去なくすべてそのまま出力された結果がUNION ALLの正しい実行結果である。 💡 UNIONは重複行を除去し、UNION ALLは重複行を除去しない、という違いを対比で覚えておく。
※Web掲載用に表記を一部変更しています。図表はIPA公式問題冊子から引用しています。著作権はIPAに帰属します。