“部品”表及び“在庫”表に対して、SQL文を実行して結果を得た。
SQL文のaに入る字句はどれか。
[SQL文]
SELECT 部品. 部品ID AS 部品ID,
CASE WHEN 部品. 発注点 > a
THEN N‘必要’ ELSE N‘不要’ END AS 発注拒否
FROM 部品 LEFT OUTER JOIN 在庫
ON 部品. 部品ID = 在庫. 部品ID
GROUP BY 部品. 部品ID, 部品. 発注点
ア
COALESCE(MIN(在庫. 在庫数), 0)
イ
COALESCE(MIN(在庫. 在庫数), NULL)
ウ
COALESCE(SUM(在庫. 在庫数), 0)
エ
COALESCE(SUM(在庫. 在庫数), NULL)
答え ウ
【解説 】
“部品”表及び“在庫”表に対してSQL文を実行した結果から処理の内容は、“部品”表と“在庫”表の同じ部品IDについて、“部品”表の発注点の個数の総和と“在庫”表の在庫数を比較して発注点が大きいと発注要否が「必要」、どうでない場合は「不要」となっている。
選択肢のSQL文のCOALESCEは指定したカラムがNULLだった場合にNULL値を指定した別の値に置き換える処理であり、この問題では“部品”表の部品ID毎の発注点の総和を計算してそれがNULLだったら0に置き換える処理が適切であるので
COALESCE(SUM(在庫. 在庫数), 0)
(ウ)になる。
【キーワード 】
・SQLのNULL値
【キーワードの解説 】
SQLのNULL値
SQLにおいてNULL は特殊な値であり、“データが存在しない”という意味で、比較を行うとその結果は必ず「偽」(false)になります。
また、四則演算にNULLがあると結果は「NULL」になります。
もっと、「SQLのNULL値」について調べてみよう。
戻る
一覧へ
次へ