Базы данных Oracle - статьи



     Полимерные добавки еще на сайте. |         

Построение рекурсивных запросов с помощью вынесения подзапроса во фразу WITH


С версии 11.2 фраза WITH может использоваться для формулирования рекурсивных запросов, в соответствии (неполном) со стандартом SQL:1999. В этом качестве она способна решать ту же задачу, что и CONNECT BY, однако (а) делает это похожим с СУБД других типов образом, (б) обладает более широкими возможностями, (в) применима не только к запросам по иерархии и (г) записывается значительно более замысловато.

Общий алгоритм вычисления фразой WITH таков:

Результат := пусто;
Добавок := исходный SELECT ...;
Пока Добавок не пуст выполнять:

Результат :=

Результат


{UNION ALL | UNION | INTERSECT | EXCEPT}
Добавок;

 

Добавок := рекурсивный SELECT ... FROM Добавок …;

конец цикла;

Предложение SELECT для исходного множества строк Oracle называет опорным (anchor) членом фразы WITH. Предложение SELECT для получения добавочного множества строк Oracle называет рекурсивным членом.




Содержание  Назад  Вперед