ORACLE MASTER Silver SQL 26ai条件・集計・結合の実行結果オリジナル・公式資料照合難易度★★★☆☆
Oracle AI Database 26aiで、employees(emp_id,dept_id)には(1,10)、(2,20)、(3,NULL)、blocked(dept_id)には10、NULLだけがある。次のSQLが返すemp_idの集合はどれか。各列はNUMBERで、表示順は問わない。 SELECT e.emp_id FROM employees e WHERE NOT EXISTS ( SELECT 1 FROM blocked b WHERE b.dept_id = e.dept_id );
A
空集合
blockedにNULLがあるだけで、すべてのNOT EXISTSが偽になるわけではありません。各従業員について副問合せの行の有無を調べます。
B
2と3★ 正解
20に一致する行はなく、NULL同士の等値比較も真にならないため、両方でNOT EXISTSが真になります。
C
2だけ
employeesのNULLを除外するIS NOT NULL条件はありません。NULL行にも相関条件を満たすblocked行はなく、3も返ります。
D
1と2と3
emp_id=1にはblockedの10が一致して副問合せが1行以上返すため、NOT EXISTSは偽です。
解説
NOT EXISTSは相関条件を満たす行が副問合せにない場合に真です。dept_id=10には対応する行があるためemp_id=1を除きます。20にもNULLにも等値条件を真にするblocked行がないため、2と3を返します。NOT INとNULLを含む場合の挙動を混同しないことが重要です。
根拠資料・確認情報
対応範囲:Oracle AI Database 26ai SQL Associate(1Z0-171-JPN)
資料確認日:2026-10-29
同じレッスンの問題
問題 1
Oracle AI Database 26aiで、次のa、bの値の組はどれか。すべてNUMBERの数値として評価する。
SELECT COALESCE(240 / NULLIF(0, 0), -1) AS a,
COALESCE(CAST(NULL AS NUMBER), 0, 99) AS b
FROM dual;
問題 2
Oracle AI Database 26aiのvisits(channel VARCHAR2(10))には、'WEB'、'WEB'、'APP'、'APP'、NULLの5行だけがある。次のn1、n2、n3の組はどれか。
SELECT COUNT(*) AS n1, COUNT(channel) AS n2,
COUNT(DISTINCT channel) AS n3
FROM visits;
問題 4
Oracle AI Database 26aiで、departments(dept_id PRIMARY KEY)は10、20、30、employees(emp_id PRIMARY KEY,dept_id)は(1,10)、(2,10)、(3,20)だけである。次のSQLが返す1行の(dept_id,joined_rows,employees_n)はどれか。
SELECT d.dept_id, COUNT(*) AS joined_rows,
COUNT(e.emp_id) AS employees_n
FROM departments d LEFT JOIN employees e
ON d.dept_id = e.dept_id
GROUP BY d.dept_id
HAVING COUNT(e.emp_id) = 0;