Проверка на принадлежность результатам вложенного запроса
Проверка на принадлежность результатам вложенного запроса, включенного в состав предиката 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.
Дата добавления: 2015-02-03; просмотров: 803;