sekakuma3さんの助け合いフォーラム投稿一覧

助け合いフォーラムの投稿
2024/02/28 コメント
NULLIF関数の挙動について
rink_rewさん、また教えていただきありがとうございます。 第1引数にリテラルのNULL値は指定できないが、第1引数で指定した列の値などが結果としてNULL値となる場合は問題なく実行できることを理解出来ました。 他の設問から探して、丁寧に教えてくれてありがとうございます。
2024/02/24 投稿
NULLIF関数の挙動について

SELECT employee_id, employee_name, DECODE(NULLIF(salary, 500000), NULL, '-', salary) sal FROM employees;

上記の選択肢で、NULLIF関数の第一引数にsalary列が指定されています。
NULLIF関数で、第一引数にNULLを指定したらエラーになると理解していますが、
もしsalary列(制約なし)にnullが含まれていたらエラーになる可能性はあるのでしょうか?

2024/02/24 投稿
選択肢が理解できない

下記の選択肢ですが、Salaryはどこにありますか
・Sal + commissionのSalaryを二重引用符(")で囲まなければならない

2024/02/22 コメント
自己結合にUSING句が使用できない理由
rink_rew さん、再度のご教示、ありがとうございます。 自己結合における USING 句の使用方法について理解できました。 丁寧に説明していただき、本当にありがとうございました。
2024/02/22 コメント
TO_NUMBER関数がエラーになる
確かに、"$"に変更したらエラーが発生せずに実行できました。 言語環境については完全に理解していませんが、文字列に通貨の記号やコンマが含まれていても、SQL自体に問題がないことを理解しました。 丁寧にご説明いただき、ありがとうございます。
2024/02/21 投稿
TO_NUMBER関数がエラーになる

問題については正しい選択肢について理解しておりますが、次の選択肢に関して、エラーがなく正しく動作しているかどうか疑問があります。

SELECT TO_NUMBER('¥500,000.0', 'L999G999D0') FROM dual;
TO_NUMBER関数は、文字列を指定された書式にしたがって数値に変換します。変換された数値は¥やカンマを含むことは出来ないため、誤りです。

実際にクエリを実行したところ、無効な数値というエラーが発生しました。したがって、この選択肢はクエリ自体が無効である可能性があります。
なぜこのクエリがエラーになるのか、それは環境の違いによるものかどうかについては明確ではありませんが、ご教示いただけますと幸いです。

2024/02/20 投稿
FULL OUTER JOIN の結合条件

上記問題にて、下記の表記がありました。
・SELECT e.employee_name, j.job_name FROM employees e FULL OUTER JOIN jobs j ON e.job_id = j.job_id;
完全外部結合です。EMPLOYEES表、JOBS表の2つの表の結合条件を満たしていないデータも含めて表示されます。

問題文には、「担当する従業員がいない職種も含めて職種情報を表示するものとします。」とありますので、FULL OUTER JOINを使用しても条件は満たされていると考えられます。
結合条件を満たしていない(職種のない)従業員のデータも含めるべきかどうかは明記されていないため、このクエリは条件を満たしていると思います。

2024/02/20 投稿
自己結合にUSING句が使用できない理由

上記の問題にて、以下のような表記がありました。
・USING句に結合条件を指定する
USING句は同じ名前の列のみを結合することができます。自己結合の実行例のように結合列に表接頭辞(表別名)を使用できないので、誤りです。

しかし、実際に、以下のクエリを実行したところ、エラーが発生せず、正常に実行されました。
SELECT e1.employee_name, e2.employee_name FROM employees e1 JOIN employees e2 using(job_id)

自己結合においてUSING句が使用できない理由について、詳細をご教示いただけないでしょうか。
私はSQLに関する経験が浅く、現在PingTを通じて学習を始めたばかりです。
そのため、この分野における知識には不確かな部分があります。もし誤解がある場合は、適切な指摘をいただけますと幸いです。

戻る