データベース
基本情報技術者試験 科目A免除 修了試験 20260726 実施分 問20
“部品”表と“在庫”表に対して SQL 文を実行した結果はどれか。ここで,実線の下線は主キーを表す。
部品(主キー: 部品ID)
在庫(主キー: 場所, 部品ID)
〔SQL 文〕
SELECT 部品名,
CASE WHEN 部品ID IN
(SELECT 部品ID FROM 在庫
WHERE 場所 = '東京' AND 在庫数 > 10 ) THEN '○'
ELSE '×' END AS 東京,
CASE WHEN 部品ID IN
(SELECT 部品ID FROM 在庫
WHERE 場所 = '大阪' AND 在庫数 > 10 ) THEN '○'
ELSE '×' END AS 大阪
FROM 部品
| 部品ID | 部品名 |
|---|---|
| 01 | メモリ |
| 02 | ディスプレイ |
| 03 | ディスク |
| 04 | マウス |
| 05 | キーボード |
| 場所 | 部品ID | 在庫数 |
|---|---|---|
| 東京 | 01 | 10 |
| 東京 | 03 | 20 |
| 東京 | 04 | 20 |
| 大阪 | 02 | 25 |
| 大阪 | 04 | 30 |
- ア [図] 表(部品名/東京/大阪): ディスプレイ ×/○,ディスク ○/×,マウス ○/○
- イ [図] 表(部品名/東京/大阪): メモリ ×/×,ディスプレイ ×/○,ディスク ○/×,マウス ○/○
- ウ [図] 表(部品名/東京/大阪): メモリ ×/×,ディスプレイ ×/○,ディスク ○/×,マウス ○/○,キーボード ×/×
- エ [図] 表(部品名/東京/大阪): メモリ ×/×,ディスプレイ ×/○,ディスク ×/×,マウス ○/○,キーボード ×/×
出典:基本情報技術者試験 科目A免除 修了試験 20260726 実施分 問20
答えと解説を見る
正解:ウ
覚える知識
SQLのIN条件とOR条件の等価性
CASE WHEN … IN (副問合せ) は,副問合せの結果に含まれるかで値を切り替える。
この問題で必要なこと
各部品について東京・大阪で在庫数>10の行があるかを判定する。メモリ(東京10→×),ディスプレイ(大阪25→○),ディスク(東京20→○),マウス(東京20・大阪30→○○),キーボード(×,×)。
ひっかけ
在庫数>10を>=10と誤読する、選択肢の図が転記上区別しづらい。
この知識の出題:本試験系 1 回・免除試験 1 回(公開問題での観測値)