ORACLE MASTER Silver SQL 26aiリレーションとSELECT・制限・ソートオリジナル・公式資料照合難易度★★★☆☆
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;
A
aは100、bは100
NULLは自動的に数値0へ変わりません。aはNULLを含む算術式です。
B
aはNULL、bは100★ 正解
NULLをそのまま計算する列と、NVLで0へ補う列の違いを反映しています。
C
aはNULL、bはNULL
bのNVLはNULLの代わりに0を返すので、bは通常の数値計算になります。
D
aは110、bは110
乗算の優先順位とNULLの意味の両方が違います。NVLの補完値も1ではなく0です。
解説
乗算が先に評価され、aではNULLを含む算術式の結果がNULLになります。bではNVLがNULLを数値0へ置き換えてから計算するので100です。表示上の空欄と数値0を区別します。
根拠資料・確認情報
対応範囲:Oracle AI Database 26ai SQL Associate(1Z0-171-JPN)
資料確認日:2026-10-29
同じレッスンの問題
問題 1
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;
問題 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;