В этой рубрике были рассмотрены темы, посвященные извлечению данных посредством подзапросов.
-
подзапрос, содержащий несколько столбцов, возвращает более одного столбца;
-
сравнения нескольких столбцов могут быть попарными или непарными;
-
подзапрос, содержащий несколько столбцов, может также использоваться в предложении
FROM
инструкцииSELECT
.
Подзапросы, содержащие несколько столбцов, могут применяться для объединения нескольких условий WHERE
в одном предложении WHERE
. Сравнения столбцов в подзапросах, содержащих несколько столбцов, могут быть попарными или непарными.
Подзапрос может использоваться для определения таблицы, с которой работает внешний запрос.
Возможное местонахождение скалярных подзапросов:
-
часть условия и выражения в
DECODE
иCASE
; -
все предложения в инструкции
SELECT
, кромеGROUP BY
; -
предложение
SET
и предложениеWHERE
в инструкцииUPDATE
.
-
Коррелированные подзапросы удобны, когда подзапрос должен возвращать разные результаты для каждой строки-кандидата.
-
Оператор
EXISTS
является логическим оператором, проверяющим наличие значения. -
Коррелированные подзапросы могут использоваться с инструкциями
SELECT
,UPDATE
иDELETE
. -
Предложение
WITH
может применяться для использо- вания одного и того же блока запроса в инструкцииSELECT
, когда она встречается более одного раза.
Сервер Oracle выполняет коррелированный подзапрос, когда подзапрос ссылается на столбец из таблицы, упоминаемой в родительской инструкции. Коррелированный подзапрос оценивается один раз для каждой строки, обрабатываемой родительской инструкцией.
Родительской инструкцией может быть SELECT
, UPDATE
или DELETE
. Применяя предложение WITH
, можно многократно использовать один и тот же запрос, когда повторная оценка блока запроса связана со значительными затратами ресурсов, а сам блок запроса встречается более одного раза в сложном запросе.
Далее: Отладка Процедур и Функций