ORACLE MASTER Silver SQL 26ai集合演算の型・NULL・評価順オリジナル・公式資料照合難易度★★★☆☆
Oracle AI Database 26aiでa(x)は1、2、b(x)は2、c(x)は2だけを持つ。次のQ1とQ2の結果の組はどれか。表示順は問わない。 Q1: SELECT x FROM a UNION SELECT x FROM b MINUS SELECT x FROM c; Q2: SELECT x FROM a UNION SELECT x FROM (SELECT x FROM b MINUS SELECT x FROM c);
A
Q1もQ2も1だけ
Q2ではb MINUS cだけを先に評価するので、aの2は除去されない。
B
Q1もQ2も1、2
Q1ではUNIONした全体からcの2を取り除くため、2は残らない。
C
Q1は1、2、Q2は1だけ
Q1とQ2の評価のまとまりが逆である。
D
Q1は1だけ、Q2は1、2★ 正解
Q1の左からの評価と、Q2の副問合せによる明示的なまとまりを区別した結果である。
解説
26aiの集合演算はこの例では左から順に評価される。Q1は(a UNION b)からcを除くため1だけになる。Q2は副問合せ内のb MINUS cが空になり、aとのUNIONで1、2になる。まとまりを変えると結果も変わる。
根拠資料・確認情報
対応範囲:ORACLE MASTER Silver SQL 26ai(1Z0-171-JPN)
資料確認日:2026-10-30
同じレッスンの問題
問題 1
Oracle AI Database 26aiで次を実行する。同名の別名があれば対応位置を自動的に並べ替える、という機能は指定していない。結果の説明はどれか。
SELECT 1 AS x, 'A' AS label FROM dual
UNION ALL
SELECT 'B' AS label, 2 AS x FROM dual;
問題 2
Oracle AI Database 26aiで次を実行する。返る行数はどれか。WHEREでNULLを等号比較した場合ではなく、示したMINUSの動作を考える。
SELECT CAST(NULL AS NUMBER) AS x FROM dual
MINUS
SELECT CAST(NULL AS NUMBER) AS x FROM dual;