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など種類が違う場合は出力順が変わることがあるのでしょうか
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)」というページがみつかりそこで
と保証されない事が明記されています。
なのでNo.1の並びも正しく問29の並びも正しく、全く異なるそれ以外の並びも正しいのだと思います
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は)、場合によっては、大阪の値が東京よりも先に出てきてもおかしくはないです。
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