Re: 問題ID: 19665 間違い?

この質問の投稿一覧へ

なし Re: 問題ID: 19665 間違い?

msg# 1.1
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2017-2-6 2:23
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
解答は" 正常に実行されるが、データが1件も表示されない"
となっていおりますが以下の文だと複数行問い合わせのため、
エラーになるのではないでしょうか?
実際にやると正解の通り1件も選択されませんが…
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
に接続されました。
SQL> select department_id, department_name
  2  from departments;

DEPARTMENT_ID DEPARTMENT_NAME
------------- ------------------------
            1 総務
            2 営業
            3 開発
            4 マーケティング
            5 品質管理

SQL>  SELECT employee_id, employee_name, hiredate
 FROM employees
 WHERE department_id >
  (SELECT department_id FROM departments
  WHERE department_id NOT BETWEEN 1 AND 5);   2    3    4    5

レコードが選択されませんでした。
どのようなエラーになると想定されたのでしょうか?
また、解説の以下の部分はどのように理解されてますか?
引用:
DEPARTMENTS表には、DEPARTMENT_ID列の値が1~5のデータが登録されています。
設問のSQL文の副問合せではDEPARTMENTS表のDEPARTMENT_ID列の値が1~5以外のデータを取り出そうとしていますが、DEPARTMENT_ID列の値が1~5以外のデータはないのでデータは1件も取り出されません。

副問合せでデータが1件も取り出されない場合、主問合せにはNULL値が返され、主問合せでの問い合わせ結果も0件となります。

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.