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だけがある。次は何行返すか。 SELECT emp_id FROM employees WHERE dept_id NOT IN (SELECT dept_id FROM blocked);

A
0行★ 正解

NULLを含むこの単一列NOT INは、どの行についてもWHEREがTRUEになりません。

B
1行。emp_id=2だけ

NULLを単に無視して10だけの除外リストとみなした結果です。NOT INではその扱いにはなりません。

C
2行。emp_id=2と3

NULLの外側行が自動で通過するわけではなく、20の行もリスト内NULLとの比較がTRUEになりません。

D
3行。NULL比較がある場合は条件全体を省略する

UNKNOWNは条件の省略を意味しません。WHEREはTRUEの行だけを採用します。

解説

NOT INは比較がすべて不一致であることを求めます。10は一致があるので除外され、20やNULLもリスト内のNULLとの比較がUNKNOWNとなり、WHEREでTRUEになりません。このデータでは0行です。NULL除外やNOT EXISTSへの変更では、外側のNULLをどう扱いたいかも決める必要があります。

根拠資料・確認情報

対応範囲:Oracle AI Database 26ai SQL Associate(1Z0-171-JPN)

資料確認日:2026-10-29

同じレッスンの問題

アプリで毎日学習しよう

ゲーミフィケーションで ORACLE MASTER Silver SQL 26ai 合格を目指す。無料・課金なし。

更新: 2026/10/28