助け合いフォーラム

Oracle DB

Oracle Master Silver SQL 2019(1Z0-071)
問題ID : 26799
問題を開く
次のSQL文の実行結果として表示される列の組合せとして、正しいものはどれですか(該当するものを全て選択してください)。
ただし、日付書式は"RR-MM-DD"とします。

 SELECT department_id, employee_id, employee_name, salary, commission, hiredate
 FROM employees
 WHERE department_id = 3
  OR salary > 400000
  AND commission <= 1200000
  OR hiredate > '08-04-01';

正解

B

C

D

E

解説

WHERE句に条件が複数指定されている場合は、論理演算子の優先順位に従って条件が評価されます。
AND演算子とOR演算子ではAND演算子のほうが先に評価されます。



 WHERE department_id = 3
  OR salary > 400000
  AND commission <= 1200000
  OR hiredate > '08-04-01';

よって設問の条件は以下のように検索されます。

「SALARY列が400000より大きく且つCOMMISSION列が1200000以下」(無し)、または、「DEPARTMENT_ID列が3」(D,E)、または、「HIREDATE列が2008年4月1日より大きい(新しい)」(B,C)

以上より、
・D
・E
・B
・C
が正解となります。

参考

SQL文ではWHERE句で論理演算子を使用して、条件を複数記述したり、条件の判定結果を反転させることができます。
論理演算子には以下のものがあります。



複数の条件が指定されている場合は、以下の優先順位に従って評価されます。



優先順位を変更したい場合は、先に評価したい演算を()括弧で囲むことで優先順位を高く変更できます。
上に戻る

図の列名の誤り

投稿日 2026/04/18

図のemployees表の1列目の列名が「DEARTMENT_ID」であるが、SQL文では「DEPARTMENT_ID」と記載されており、「P」が抜けている。
DEARTMENT_IDではなくDEPARTMENT_IDと表示するのが正しいだろう。


H Hiro090931

2026/04/18 16:58

訂正 Pが抜けているのではなく、PとAが逆になっている。

スタッフからの返信

s staff_ishii

2026/04/21 22:31

Hiro090931 さん、 ご指摘の点を修正いたしました。 ご報告、誠にありがとうございました。

この投稿に対して返信しませんか?