問題ID:8330 選択肢について
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
問題ID:8330 選択肢について
msg# 1
syuson
投稿数: 4
複数行副問い合わせに関する説明の問題について下記の選択肢がありました。
複数の列を返すこともできる
列ではなく、正しくは行ではないでしょうか。
複数の列を返すこともできる
列ではなく、正しくは行ではないでしょうか。
Re: 問題ID:8330 選択肢について
msg# 1.1
arashi1977
居住地: 広島
投稿数: 1715
複数の列を返すこともできる
列ではなく、正しくは行ではないでしょうか。
複数行返す問い合わせで、複数列返すこともできる、ということですね。
解説の最初の説明用クエリを例にしますが
SELECT employee_name, salary
FROM employees
WHERE salary >
(SELECT AVG(NVL(salary, 0)) FROM employees);
これを改変して
SELECT employee_name
FROM employees
WHERE salary >
(SELECT AVG(NVL(salary, 0)) FROM employees);
ちなみに、WHEREの条件である salary > (SELECT AVG(NVL(salary, 0)) FROM employees) が単一行を返しても、employees テーブルのレコードで条件にヒットする行が複数かえることがありますので、複数行返す、という syuson さんの認識も間違いではありません。
Re: 問題ID:8330 選択肢について
msg# 1.2
syuson
投稿数: 4
解決しました、ありがとうございます。
Re: 問題ID:8330 選択肢について
msg# 1.3
onetouch
投稿数: 6
副問い合わせ部分で複数列を返せますよ
参考の一番下に例があります。
SELECT employee_id, employee_name
FROM employees
WHERE (department_id, employee_id) IN
(SELECT department_id, manager_id
FROM departments);
参考の一番下に例があります。
SELECT employee_id, employee_name
FROM employees
WHERE (department_id, employee_id) IN
(SELECT department_id, manager_id
FROM departments);
Re: 問題ID:8330 選択肢について
msg# 1.3.1
arashi1977
居住地: 広島
投稿数: 1715
わぁ、設問&解説の読みもれだったのですね orz