Вот документация: http://download -east.oracle.com / docs / cd / B12037_01 / server.101 / b10759 / questions003.htm
Вот порядок выполнения, который он описывает:
- Соединение, если оно присутствует, оценивается
во-первых, указано ли соединение
в предложении FROM или WHERE
предикаты предложения.
- Условие CONNECT BY
оценены.
- Любое оставшееся предложение WHERE
предикаты оцениваются.
У меня такой вопрос, относится ли часть 1. выше к вложенным запросам. Например, если у меня есть:
select * from foo
where exists (select 'x' from bar
where bar.foo_id = foo.foo_id
start with bar.id is null
connect by prior bar.id = bar.parent_id)
Выполняется ли соединение в предложении where немедленно или, поскольку foo.foo_id в этом контексте фактически является единственным значением, выполняется ли оно в части 3, где выполняются остальные условные ограничения с одним значением?