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