HOME»応用情報技術者試験掲示板»応用情報技術者 令和2年 秋期 午前問29
投稿する

応用情報技術者 令和2年 秋期 午前問29 [5972]

 魚は森にもいるさん(No.1) 
応用情報技術者 令和2年 秋期 午前問29のSQL問題について質問です

SQLに触れる機会が少ないため初歩的な質問で申し訳ないのですが
UNION ALLで結合する場合

A001       50
B002       25
C003       35
B002       15
C003       35
D004       80

上記の出力結果になりそうな感じがしますが、選択肢の中に該当内容がありません
Oracle、MySQL、Microsoft SQL Serverなど種類が違う場合は出力順が変わることがあるのでしょうか
2025.09.11 22:28
お寺の和尚さん(No.2) 
たぶん、その出力結果もありだと思います。
この場合、何も考えずに消去法で「エ」と割り切っています。
2025.09.12 08:23
電タックさん(No.3) 
原文は見つけられませんでしたがunion句の結果で並びを保証していないのはどうもSQL標準の仕様らしいです。

MicrosoftのSQLServerになりますが「ORDER BY sqlserver」で検索すると「SELECT - ORDER BY 句 (Transact-SQL)」というページがみつかりそこで
>指定した列リストでクエリの結果セットを並べ替え、必要に応じて、返される行を指定の範囲に制限する。 ORDER BY句が指定されていない限り、結果セットで行が返される順序は保証されません。
と保証されない事が明記されています。

なのでNo.1の並びも正しく問29の並びも正しく、全く異なるそれ以外の並びも正しいのだと思います
2025.09.12 09:12
GinSanaさん(No.4) 
AP プラチナマイスター
東京のクエリから実行されて大阪のクエリが次に行われるか、ということもDBMSの実行計画により変わります(パーティション分割や並列計画などで変わる)。
www.postgresql.org/message-id/flat/2742511.1657800108%40sss.pgh.pa.us#cddd884aa3798882067e0fa2882e77c5
PostgreSQL: Re: Clarify the ordering guarantees in combining queries (or lack thereof)

dba.stackexchange.com/questions/316818/are-results-from-union-all-clauses-always-appended-in-order
postgresql - Are results from UNION ALL clauses always appended in order? - Database Administrators Stack Exchange

まあ基本的には、東京の中でどういう順序かわからないが出てきてから、大阪のがどういう順序かわからないが出てくる、というところですが(少なくともpostgresは)、場合によっては、大阪の値が東京よりも先に出てきてもおかしくはないです。
2025.09.12 11:15
返信投稿用フォーム
お名前
顔アイコン

本文(コミュニティガイドライン⇱を順守して適切な投稿を心がけましょう)
🔐投稿削除用のパスワード(任意)
投稿プレビュー
※SQL文は全角文字で記載してください。
※宣伝や迷惑行為を防止するため、当サイト、姉妹サイト、IPAサイト以外のURLを含む文章の投稿はできません。
投稿記事削除用フォーム
投稿No. パスワード 
© 2010- 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop