ORACLE MASTER Silver SQL 26ai副問合せと集合演算オリジナル・公式資料照合難易度★★★☆☆
Oracle AI Database 26aiのbonus(id PRIMARY KEY, amount NUMBER)には(1,10)、(2,20)だけがある。AとBを独立に実行した結果の説明はどれか。 A: SELECT (SELECT amount FROM bonus WHERE id = 99) AS x FROM dual; B: SELECT (SELECT amount FROM bonus) AS x FROM dual;
A
Aは0行、Bは2行
スカラー副問合せ内の行数をそのまま外側の行数へ置き換えるものではありません。
B
Aは1行でx=NULL、Bは複数行を返すスカラー副問合せのエラー★ 正解
0行と2行で異なる規則を適用します。どちらも自動的に先頭値へ丸めません。
C
Aは1行でx=0、Bはx=10
空結果は数値0ではなくNULLです。Bにも先頭行を1件選ぶ指定はありません。
D
AもBもNULLを持つ1行
NULLになるのは空結果の場合です。複数行をNULLへ自動変換してエラーを回避しません。
解説
スカラー副問合せの0行結果は値NULLになります。複数行を単一値として返そうとするとエラーです。Aの外側はdualの1行を返し、その列がNULLであり、外側の行自体が消えるわけではありません。
根拠資料・確認情報
対応範囲:Oracle AI Database 26ai SQL Associate(1Z0-171-JPN)
資料確認日:2026-10-29
同じレッスンの問題
問題 1
Oracle AI Database 26aiのemployees(emp_id, dept_id)に(1,10)、(2,20)、(3,NULL)、blocked(dept_id)に10とNULLだけがある。次は何行返すか。
SELECT emp_id FROM employees
WHERE dept_id NOT IN (SELECT dept_id FROM blocked);
問題 3
Oracle AI Database 26aiでa(x NUMBER)の全行は1、1、2、b(x NUMBER)の全行は2、3である。次のU1、U2の結果行数の組はどれか。並び順は問わない。
U1: SELECT x FROM a UNION ALL SELECT x FROM b;
U2: SELECT x FROM a UNION SELECT x FROM b;
問題 4
Oracle AI Database 26aiでa(x NUMBER)は1、1、2、b(x NUMBER)は2、3だけである。次のMとIが返す値の集合の組はどれか。表示順は問わない。
M: SELECT x FROM a MINUS SELECT x FROM b;
I: SELECT x FROM a INTERSECT SELECT x FROM b;