селект в селекте
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



селект в селекте Expand / Collapse
Автор
Сообщение
26.03.2002 15:09
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 21.02.2007 18:25
Сообщ.: 109, Visits: 1 201
Слыхал, что можно использовать select-подзапрос в select-запросе не
только после where, но и "наверху". Это как? Как выглядит синтаксис и, если можно, пару примеров эффективного использования такой конструкции
В SQL-Server - де это существует уже давно, а теперь есть также в Oracle(c 9 версии).
Заранее благодарен.
Сообщ. #745155
27.03.2002 14:59
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 28.03.2002 11:53
Сообщ.: 8, Visits: 89

select e1.ename,e1.sal,e2.average
from emp e1,(
select avg(sal) as average
from emp
) e2
where e1.sal>e2.average
Сообщ. #745280
27.03.2002 15:01
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 28.03.2002 11:53
Сообщ.: 8, Visits: 89
Вдогонку...
Данная возможность существует и в более ранних версиях(7-х,8-х)
Сообщ. #745281
27.03.2002 17:26
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 21.02.2007 18:25
Сообщ.: 109, Visits: 1 201
Большое спасибо.
Точно, в версии 8 работает тоже.
Всего доброго ;)
Сообщ. #745305
27.03.2002 19:07
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 09.10.2008 18:37
Сообщ.: 178, Visits: 1 956
интерестно вот что -
сколько уровней вложений возможно?
Сообщ. #745316
28.03.2002 9:52
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 28.03.2002 11:53
Сообщ.: 8, Visits: 89
Вообще-то, по-моему, до 255 вложений.
Хотя интересно было бы посмотреть, как Вы собираетесь разбираться
в своем запросе.
Не проще ли использовать другие средства Oracle?
Сообщ. #745352
03.04.2002 17:13
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 01.07.2002 14:35
Сообщ.: 30, Visits: 331
А в 9i можно подзапросы писать даже "на самом верху"

select
(select sysdate from dual where d.dummy = 'X') as qqq
from dual d


PS:
Читал про эту возможность в 9i, а она и в 8.1.7 работает
Сообщ. #745987
07.04.2002 20:47
Junior Member

Junior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior MemberJunior Member

участник
Last Login: 04.10.2003 23:58
Сообщ.: 14, Visits: 155
В 8.1.6 тоже работает. На более ранних версиях не пробовал. Естесственно, подселект должен возвращать не более одной строки.

Кстати, план получается какой-то странный:
SELECT STATEMENT
TABLE ACCESS (FULL) - DUAL

Хотя в подселекте стоит обращение и к другой таблице:
select (select <COLUMN> from <TABLE> where rownum=1) from dual
(подставьте валидные имя таблицы и столбца из вашей схемы)
Сообщ. #746395
14.04.2002 1:39
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 21.02.2007 18:25
Сообщ.: 109,