В SQL используются следующие условия отбора в подчиненном запросе:
• сравнение с результатом подчиненного запроса. Значение выражения сравнивается с одним значением, которое возвращается подчиненным запросом.
• проверка на принадлежность результатам подчиненного запроса. Значение выражения проверяется на равенство одному из множества значений, которые возвращаются подчиненным запросом. Эта проверка напоминает простую проверку на членство в множестве.
• проверка на существование. Проверяется наличие строк в таблице результатов подчиненного запроса.
• многократное сравнение. Значение выражения сравнивается с каждым из множества значений, которые возвращаются подчиненным запросом.
По поводу сравнения видимо следует указать лишь то, что подчиненный запрос в операции сравнения может стоять только справа от оператора сравнения, т.е. неравенство А < (подчиненный запрос) разрешается, а неравенство (подчиненный запрос) >А недопустимо. Сказанное не ограничивает возможности операции сравнения, поскольку знак любого неравенства всегда можно "перевернуть" так, чтобы подчиненный запрос оказался с правой стороны. Однако это говорит о том, что иногда требуется "переворачивать" логику словесного запроса так, чтобы он формально соответствовал действительной инструкции SQL.
Проверка на принадлежность результатам подчиненного запроса (предикат IN) является видоизмененной формой простой проверки на членство во множестве. Одно значение сравнивается со столбцом данных, которые возвращаются подчиненным запросом. Следует отметить, что в запросах с подчинением возможно употребление также и инверсной формы проверки на принадлежность результатам подчиненного запроса посредством предиката NOT IN .