Условия отбора в подчиненном запросе

Вложенный запрос всегда является частью условия отбора в предложении WHERE и HAVING. В SQL используются следующие условия отбора вложенного во вложенном запросе:

сравнение с результатом подчиненного запроса: значение выражения сравнивается с одним значением, вычисленным вложенным запросом. Эта проверка представляет собой простое сравнение.

проверка на принадлежность результатам вложенного запроса: значение выражения проверяется на равенство одному из множества значений, возвращаемых вложенным запросом. Эта проверка представляет собой проверку на членство в множестве;

проверка на существование: проверяется наличие строк в таблице результатов вложенного запроса;

многократное сравнение: значение выражения сравнивается с каждым из множества значений, возвращаемых вложенным запросом.

Сравнение с результатом полученного запроса

В данном условии отбора значение выражения сравнивается со значением, вычисленным вложенным запросом. В случае совпадения значений проверка дает результат TRUE, а в случае несовпадения - FALSE. Этот вид условия отбора используется для сравнения значения из проверяемой строки с одним значением, полученным от вложенного запроса.

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

SELECT FAMILY, NAME

FROM SLUZHASCHIE

WHERE QUOTA >= (SELECT TARGET

FROM OFFISY

WHERE CITY = ‘Инза’)

FAMILY NAME
Филатов Петр
Полев Андрей
Пронин Игорь

В описываемом примере вложенный запрос считывает плановый объем продаж для офиса в Инзе. Затем это значение используется для отбора тех служащих, у которых плановый объем продаж выше, чем у этого офиса.

При этом следует иметь в виду, что вложенный запрос должен возвращать единичное значение, т.е. одну строку, содержащую один столбец. Если в результате выполнения вложенного запроса выводится несколько строк или столбцов, то сравнение теряет смысл и СУБД выводит сообщение об ошибке.

В случае возвращения вложенным запросом значения NULL или если не будет выведено ни одной строки, то операция сравнения вернет значение NULL.


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



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