Подзапрос, возвращающий из одной строки ровно одно значение столбца, называют также скалярным подзапросом.
Подзапросы, содержащие несколько столбцов, которые написаны для сравнения двух или более столбцов с использованием составного предложения WHERE и логических операторов, не квалифицируются как скалярные подзапросы.
-
Выражение скалярного подзапроса – это подзапрос, возвращающий из одной строки ровно одно значение столбца.
-
Возможное местонахождение скалярных подзапросов:
-
часть условия и выражения в
DECODEиCASE; -
все предложения в инструкции
SELECT, кромеGROUP BY; -
предложение SET и предложение
WHEREинструкцииUPDATE.
-
Скалярные подзапросы в SQL
Значение выражения скалярного подзапроса – это значение элемента списка выбора, относящегося к подзапросу. Если подзапросом возвращается 0 строк, значение выражения скалярного подзапроса равно NULL. Если подзапросом возвращается более одной строки, сервер Oracle возвращает ошибку.
Сервером Oracle всегда поддерживается использование скалярного подзапроса в инструкции SELECT.
Скалярные подзапросы могут встречаться в следующих местах:
-
часть условия и выражения в
DECODEиCASE; -
все операторы в инструкции
SELECT, кромеGROUP BY; -
предложение SET и предложение
WHEREинструкцииUPDATE.
Однако скалярные подзапросы являются недопустимыми выражениями в следующих местах:
-
в качестве значений по умолчанию для столбцов и хэш-выражений кластеров;
-
в предложении
RETURNINGинструкций DML (data manipulation language); -
в качестве основы функциональных индексов;
-
в предложениях
GROUP BY, ограниченияхCHECKи условияхWHEN; -
в операторах
CONNECT BY; -
в инструкциях, которые не связаны с запросами, например
CREATE PROFILE.
Далее: Использование метасимволов с регулярными выражениями