Коррелированные подзапросы

Коррелированные подзапросы используются для по- строчной обработки.

6-15-1251762

Каждый подзапрос выполняется однократно для каждой строки внешнего запроса.

Коррелированный подзапрос выполняется сервером Oracle, когда подзапрос ссылается на столбец из таблицы, упоминаемой в родительской инструкции. Коррелированный подзапрос выполняется однократно для каждой строки, обрабатываемой родительской инструкцией. Родительской инструкцией может быть инструкция SELECT, UPDATE или DELETE.

Вложенные подзапросы и коррелированные подзапросы

При обычном вложенном подзапросе сначала запускается и выполняется однократно внутренний запрос SELECT, возвращая значения, которые используются главным запросом. Однако коррелированный подзапрос выполняется однократно для каждой строки-кандидата, анализируемой внешним запросом. Иными словами, внутренний запрос управляется внешним запросом.

Выполнение вложенного подзапроса

  • Внутренний запрос выполняется первым и осуществляет поиск значения.

  • Внешний запрос выполняется однократно, используя значение из внутреннего запроса.

Выполнение коррелированного подзапроса

  • Получает строку-кандидата (выбираемую внешним запросом).

  • Выполняет внутренний запрос, используя значение строки-кандидата.

  • Использует значения, получаемые из внутреннего запроса, для квалификации или дисквалификации строки-кандидата.

  • Повторяется до тех пор, пока имеются строки-кандидаты.

Подзапрос ссылается на столбец из таблицы в родительском запросе.

6-16-2479337

Коррелированный подзапрос является одним из способов чтения каждой строки в таблице и сравнения значений в каждой строке со связанными данными. Он используется всякий раз, когда подзапрос должен вернуть другой результат или набор результатов для каждой строки- кандидата, анализируемой главным запросом. Иными словами, коррелированный подзапрос применяется, чтобы ответить на многокомпонентный вопрос, ответ на который зависит от значения в каждой строке, обрабатываемой родительской инструкцией.

Коррелированный подзапрос выполняется сервером Oracle, когда подзапрос ссылается на столбец из таблицы в родительском запросе.

Примечание. В коррелированном подзапросе можно использовать операторы ANY и ALL.

Далее: Синтаксис условий и функций регулярных выражений

Похожие записи