SQL::Сохранение и использование результата подзапроса

программирование базы данных sql oracle

Есть сложный SQL-запрос, и в нем много раз фигурирует один и тот же подзапрос, который всегда возвращает одно и то же значение. Нельзя ли как нибудь сохранить это значение прямо в запросе, чтобы уже общаться к нему, а не выполнять запрос по много раз?

Просто пример:
select
t.*,
(select id_node from nodes where 1=1 and rownum = 1) as id_node,
(select name from nodes_name where id_node = (select id_node from nodes where 1=1 and rownum = 1)) as name,
(select child from nodes_children where id_node = (select id_node from nodes where 1=1 and rownum = 1)) as child,
....
from table t

Как видите, запрос на id_node выполняется трижды, а это значение хотелось бы сохранить...

БД: Oracle
Ответы:
1) select t.*, n.idnode, ( select name from nodes_name where id_node = n.id_node ) name, (select child from nodes_children where id_node = n.id_node ) child
from table t, (select id_node from nodes where 1=1 and rownum=1) n


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.