Проверка на принадлежность результатам вложенного запроса

Проверка на принадлежность результатам вложенного запроса, включенного в состав предиката IN, является аналогом проверки на членство в множестве. Текущее значение проверяемого выражения главного запроса сравнивается со столбцом значений, возвращаемых вложенным запросом. Если это значение равно одному из элементов столбца, то проверка дает результат TRUE и текущая строка включается в результирующую таблицу.

Приведем пример запроса, использующего проверку на принадлежность результатам вложенного запроса: вывести список служащих тех офисов, где фактический объем продаж превышает плановый.

SELECT FAMILY, NAME

FROM SLUZHASCHIE

WHERE SLUZHASCHIE.ID_OFC IN (SELECT OFFISY.ID_OFC

FROM OFFISY

WHERE SALES > TARGET)

FAMILY NAME
Филатов Петр
Петров Петр

Вложенный запрос возвращает список идентификаторов офисов, где фактический объем продаж превышает плановый (в учебной базе данных есть два таких офиса - с идентификаторами 12 и 22). Главный запрос проверяет каждую строку таблицы SLUZHASCHIE, чтобы определить, работает ли данный служащий в одном из отобранных офисов.

В приведенном примере вложенный запрос возвращает в качестве результата множество значений, а предложение WHERE главного запроса проверяет равенство значения из строки таблицы главного запроса одному из значений полученного множества. Таким образом, проверка IN с вложенным запросом выполняется аналогично проверке IN в инструкции SELECT.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: