Подзапрос, возвращающий из одной строки ровно одно значение столбца, называют также скалярным подзапросом.
Подзапросы, содержащие несколько столбцов, которые написаны для сравнения двух или более столбцов с использованием составного предложения 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
.
Далее: Использование метасимволов с регулярными выражениями