FE SUBJECT A
基本情報技術者 科目Aの問題解説:商品表から単価が11000円以上21000円未満の商品を抽出…
問題
商品表から単価が11000円以上21000円未満の商品を抽出する条件として適切なSQLはどれか。
- ア 単価 <= 11000 AND 単価 >= 21000
- イ 単価 > 11000 OR 単価 < 21000
- ウ 単価 >= 11000 AND 単価 < 21000(正解)
- エ 単価 BETWEEN 21000 AND 11000
出典:オリジナル問題|参考範囲:試験要綱Ver.5.5 / FEシラバスVer.9.2 科目A範囲
正解と解説
正解:単価 >= 11000 AND 単価 < 21000
考え方:条件式を境界の含む・含まないに注意して組み立てる問題です。「11000円以上」は下限を含むので 単価 >= 11000,「21000円未満」は上限を含まないので 単価 < 21000 で表します。両方の条件を同時に満たす必要があるため、AND で結びます。
誤答の理由:OR を使うと、11000円より大きい商品または21000円未満の商品を広く拾ってしまい、範囲指定になりません。<= 11000 AND >= 21000 は通常同時に成り立たず、BETWEEN 21000 AND 11000 は範囲の向きも不自然です。
軽い類題:「100以上200未満」なら x >= 100 AND x < 200 です。以上・以下は含む、未満・超は含まない、と記号に直すと迷いません。
他の選択肢はなぜ違う?
- ア=21000は1点だけの一致で、しかも『21000未満』に反する。
- イORでは『11000より大きい』か『21000未満』のどちらかを満たせば通ってしまい、ほぼ全件が対象になる。
- エBETWEENは小さい値→大きい値の順で書く約束。逆順では意図した範囲にならない。
この問題について
IPAが公開するシラバス・試験範囲・公開問題の出題形式を参考にした独自作成問題。公式問題・過去問題の転載ではありません。
公式試験問題、過去問題、公式サンプル問題、市販教材の問題文を転載したものではありません。