ORACLE MASTER Silver SQL 26aiリレーションとSELECT・制限・ソートオリジナル・公式資料照合難易度★★★☆☆
Oracle AI Database 26aiを使う。customers(customer_id PRIMARY KEY)には10、20があり、orders(order_id PRIMARY KEY, customer_id REFERENCES customers(customer_id))の行は(1,10)、(2,10)、(3,20)、(4,NULL)だけである。次のSQLが返すcustomer_idの集合はどれか。行の表示順は問わない。 SELECT DISTINCT c.customer_id FROM customers c JOIN orders o ON c.customer_id = o.customer_id;
A
10と20の2値★ 正解
結合後は10、10、20となり、DISTINCTで10の重複を除いた結果です。
B
10、10、20の3値
これはDISTINCTを付けない結合結果です。主キーがある顧客表を結合しても、注文側の複数行が消えるわけではありません。
C
10、20、NULLの3値
内部結合の等値条件はNULLとどの顧客IDの間でもTRUEになりません。ordersのNULLを独立した顧客として追加しません。
D
10だけ
顧客20にも対応する注文が1件あります。DISTINCTは出現回数が1回の値を捨てる指定ではありません。
解説
結合は注文と顧客の対応する行を作り、10に対応する注文が2件あれば結合直後の10も2行になります。DISTINCTは投影したcustomer_idの重複を除きます。NULLの注文行は等値結合の相手を作りません。
根拠資料・確認情報
対応範囲:Oracle AI Database 26ai SQL Associate(1Z0-171-JPN)
資料確認日:2026-10-29
同じレッスンの問題
問題 2
Oracle AI Database 26aiで、次の2列の値を順に答える。数値はNUMBERとして評価する。
SELECT 100 + 10 * CAST(NULL AS NUMBER) AS a,
100 + 10 * NVL(CAST(NULL AS NUMBER), 0) AS b
FROM dual;
問題 3
Oracle AI Database 26aiのemployees(employee_id PRIMARY KEY, salary NUMBER)に(1,100)、(2,200)、(3,200)だけがある。次の結果でemployee_idが表示される順序はどれか。
SELECT employee_id, salary AS pay
FROM employees
ORDER BY pay DESC, employee_id ASC
FETCH FIRST 2 ROWS ONLY;
問題 4
Oracle AI Database 26aiへSQL*Plusで接続し、DEFINE ON、通常の置換文字&を使う。次を順に実行する。VERIFYのold/new表示行自体は数えず、SELECTの数値結果と置換の実行場所の説明を選ぶ。
DEFINE extra = 8
SET VERIFY ON
SELECT 100 + &extra AS total FROM dual;