質問: 現在資格勉強の関係で Oracle Master Bronzeの Bronze SQL基礎というジャンルの試験学習をしていて WEBの問題を見つつ学習しているのですが、 下記サイトの問1がなぜ回答aなのか全く理解できないのでどなたか解説をお願いしたいです。 > > http://www.atmarkit.co.jp/ait/articles/0506/10/news121.html > > > 回答bだと私は思っているのですが、 サイトのミスでしょうか。 それとも私の思考が浅はかなのでしょうか。 問題1 次のデータと要件を確認してください。 EMPNO ENAME SAL COMM ----- ------- ------- ------- 7369 SMITH 800 7499 ALLEN 1600 300 7521 WARD 1250 500 7566 JONES 2975 •SALとCOMMを計算した結果を表示する •COMMが0の行を表示しない •COMMがNULLの場合は0とする 次の文を実行したとき、上記の要件を満たすものはいくつありますか? SELECT empno, sal*comm FROM emp WHERE comm IS NOT NULL; a. 1つ b. 2つ c. 3つ d. エラーとなる 正解:a 解説 問題のSELECT文では、「COMMがNULLでない行のSALとCOMMの計算結果を表示する」という結果が戻ります。問題の要件に挙げている要素を満たすには次のことが必要です。 回答よろしくお願いします。
回答: 解説にある通りだと思います。 > > 問題のSELECT文では、「COMMがNULLでない行のSALとCOMMの計算結果を表示する」という結果が戻ります > > > 上記に該当するのは、 > > •SALとCOMMを計算した結果を表示する > > > だけですから。 > > COMMがNULLでない行 > > > というのは要件のどれにも当てはまりませんね。