基本情報技術者試験 - 令和8年7月修了 - 問20
“部品”表と“在庫”表に対してSQL文を実行した結果はどれか。ここで,実線の下線は主キーを表す。
〔SQL文〕
SELECT 部品名,
CASE WHEN 部品 ID IN
(SELECT 部品 ID FROM 在庫
WHERE 場所 = '東京' AND 在庫数 > 10) THEN 'O'
ELSE 'X' END AS 東京,
CASE WHEN 部品 ID IN
(SELECT 部品 ID FROM 在庫
WHERE 場所 = '大阪' AND 在庫数 > 10) THEN 'O'
ELSE 'X' END AS 大阪
FROM 部品

〔SQL文〕
SELECT 部品名,
CASE WHEN 部品 ID IN
(SELECT 部品 ID FROM 在庫
WHERE 場所 = '東京' AND 在庫数 > 10) THEN 'O'
ELSE 'X' END AS 東京,
CASE WHEN 部品 ID IN
(SELECT 部品 ID FROM 在庫
WHERE 場所 = '大阪' AND 在庫数 > 10) THEN 'O'
ELSE 'X' END AS 大阪
FROM 部品
| ア | ![]() |
|---|---|
| イ | ![]() |
| ウ | ![]() |
| エ | ![]() |
答え : ウ
分野 : テクノロジ系 › 技術要素 › データベース › データ操作
解説 :
このSQL文では,CASE WHEN文を使って,それぞれの部品について東京と大阪の在庫状況を判定しています。部品ごとに「東京の在庫が10個を超えているかどうか」と「大阪の在庫が10個を超えているかどうか」を,それぞれサブクエリ(副問合せ)を使って調べ,条件を満たせば 'O',満たさなければ 'X' を表示するという処理内容になっています。
CASE WHEN文は,条件によって異なる値を出力したいときに使う便利な構文で,IF文のような役割を果たします。実際にこの問題を解く際には,部品表の各部品IDについて,在庫表の該当データを一つずつ確認しながら,東京・大阪それぞれの条件を満たすかどうかを丁寧にチェックしていくことが確実な解答につながります。
分野 : テクノロジ系 › 技術要素 › データベース › データ操作
解説 :
このSQL文では,CASE WHEN文を使って,それぞれの部品について東京と大阪の在庫状況を判定しています。部品ごとに「東京の在庫が10個を超えているかどうか」と「大阪の在庫が10個を超えているかどうか」を,それぞれサブクエリ(副問合せ)を使って調べ,条件を満たせば 'O',満たさなければ 'X' を表示するという処理内容になっています。
CASE WHEN文は,条件によって異なる値を出力したいときに使う便利な構文で,IF文のような役割を果たします。実際にこの問題を解く際には,部品表の各部品IDについて,在庫表の該当データを一つずつ確認しながら,東京・大阪それぞれの条件を満たすかどうかを丁寧にチェックしていくことが確実な解答につながります。



