問題ID:8330 選択肢について

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 | 投稿日時 2014-5-28 15:59
syuson  新米   投稿数: 4
複数行副問い合わせに関する説明の問題について下記の選択肢がありました。

複数の列を返すこともできる

列ではなく、正しくは行ではないでしょうか。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-5-29 10:22 | 最終変更
arashi1977  長老 居住地: 広島  投稿数: 1715
引用:
複数の列を返すこともできる

列ではなく、正しくは行ではないでしょうか。
選択肢は特に間違っていないと思います。
複数行返す問い合わせで、複数列返すこともできる、ということですね。

解説の最初の説明用クエリを例にしますが
SELECT employee_name, salary
FROM employees
WHERE salary >
   (SELECT AVG(NVL(salary, 0)) FROM employees);
employee_name, salaryの複数返してますよね?
これを改変して
SELECT employee_name
FROM employees
WHERE salary >
   (SELECT AVG(NVL(salary, 0)) FROM employees);
employee_nameだけにしました。この場合は単一列(って呼ぶのかな?)を返してます。

ちなみに、WHEREの条件である salary > (SELECT AVG(NVL(salary, 0)) FROM employees) が単一行を返しても、employees テーブルのレコードで条件にヒットする行が複数かえることがありますので、複数行返す、という syuson さんの認識も間違いではありません。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-5-29 10:46
syuson  新米   投稿数: 4
解決しました、ありがとうございます。
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2014-5-29 11:03
onetouch  半人前   投稿数: 6
副問い合わせ部分で複数列を返せますよ
参考の一番下に例があります。

SELECT employee_id, employee_name
FROM employees
WHERE (department_id, employee_id) IN
 (SELECT department_id, manager_id
 FROM departments);
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2014-5-29 13:02 | 最終変更
arashi1977  長老 居住地: 広島  投稿数: 1715
わぁ、設問&解説の読みもれだったのですね orz

  >フォーラム検索へ


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