|
|
|
Supreme Being
      
участник
Last Login: 21.02.2007 18:25
Сообщ.: 109,
Visits: 1 201
|
|
Слыхал, что можно использовать select-подзапрос в select-запросе не только после where, но и "наверху". Это как? Как выглядит синтаксис и, если можно, пару примеров эффективного использования такой конструкции В SQL-Server - де это существует уже давно, а теперь есть также в Oracle(c 9 версии). Заранее благодарен.
|
|
|
|
|
новичок
      
участник
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
|
|
|
|
|
новичок
      
участник
Last Login: 28.03.2002 11:53
Сообщ.: 8,
Visits: 89
|
|
Вдогонку... Данная возможность существует и в более ранних версиях(7-х,8-х)
|
|
|
|
|
Supreme Being
      
участник
Last Login: 21.02.2007 18:25
Сообщ.: 109,
Visits: 1 201
|
|
Большое спасибо. Точно, в версии 8 работает тоже. Всего доброго ;)
|
|
|
|
|
Supreme Being
      
участник
Last Login: 09.10.2008 18:37
Сообщ.: 178,
Visits: 1 956
|
|
интерестно вот что - сколько уровней вложений возможно?
|
|
|
|
|
новичок
      
участник
Last Login: 28.03.2002 11:53
Сообщ.: 8,
Visits: 89
|
|
Вообще-то, по-моему, до 255 вложений. Хотя интересно было бы посмотреть, как Вы собираетесь разбираться в своем запросе. Не проще ли использовать другие средства Oracle?
|
|
|
|
|
Forum 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 работает
|
|
|
|
|
Junior 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 (подставьте валидные имя таблицы и столбца из вашей схемы)
|
|
|
|
|
Supreme Being
      
участник
Last Login: 21.02.2007 18:25
Сообщ.: 109,
| | | |