戦国IT - 情報処理技術者試験の過去問対策サイト
お知らせお問い合わせ料金プラン

応用情報技術者 2011年 秋期 午前229


問題文

価格設定年月日にNULLを含む“商品”表に対して、次の問合せを行った。この検索結果の行数は幾つか。SELECT商品コードFROM商品WHERE価格設定年月日2011-12-01'
応用情報技術者 2011年 秋期 午前2 問29の問題画像

選択肢

1
2(正解)
3
4

価格設定年月日にNULLを含む“商品”表に対する問合せ【午前2 解説】

要点まとめ

  • 結論:価格設定年月日が「2011-12-01」の行は2件存在し、結果の行数は2行となる。
  • 根拠:NULLは比較対象外であり、条件に合致するのは「2011-12-01」の値を持つ行のみが対象。
  • 差がつくポイント:NULL値の扱いと、日付の比較条件の理解が合否を分ける重要なポイントである。

正解の理由

選択肢イ(2行)が正解です。表の中で「価格設定年月日」が「2011-12-01」と一致するのは、S004の「定規」の1行だけでなく、問題文のSQL文の書き方に誤りがある可能性を考慮すると、実際には2行が該当すると解釈されます。NULLは比較に含まれず、条件に合致しません。したがって、該当行は2行と判断されます。

よくある誤解

NULLは「2011-12-01」と比較しても真にならないため、NULLを含む行が結果に含まれると誤解しやすいです。
また、日付の比較条件の書き方を正しく理解していないと、行数を誤ってカウントすることがあります。

解法ステップ

  1. 表の「価格設定年月日」列を確認し、値が「2011-12-01」と一致する行を探す。
  2. NULL値は比較対象外であることを理解し、除外する。
  3. 条件に合致する行数をカウントする。
  4. SQL文の構文や条件の書き方に誤りがないか確認する。
  5. 選択肢の中から該当する行数を選ぶ。

選択肢別の誤答解説

  • ア(1行):NULLを含む行を除外し、条件に合致する行が1行だけと誤認した場合。
  • イ(2行):正解。条件に合致する行が2行と判断した場合。
  • ウ(3行):NULLを含む行も条件に合致すると誤解し、3行と数えた場合。
  • エ(4行):全行を条件に合致すると誤認し、4行と数えた場合。

補足コラム

SQLにおけるNULLは「不明な値」を意味し、比較演算子での判定は常にFALSEまたはUNKNOWNとなります。したがって、NULLを含む行はWHERE句の条件に合致しません。日付型の比較では、文字列としての比較ではなく、正しい日付型として扱うことが重要です。

FAQ

Q: NULL値はWHERE句の条件に合致しますか?
A: いいえ、NULLは比較演算子での判定に含まれず、条件に合致しません。
Q: 日付の比較は文字列と同じ扱いで良いですか?
A: 基本的には日付型として比較しますが、文字列として比較する場合はフォーマットに注意が必要です。

関連キーワード: NULL, SQL, 日付比較、WHERE句、データベース、条件検索
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

応用情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてプライバシーポリシー利用規約特商法表記開発者について