ПРЕДИКАТЫ С ПОДЗАПРОСАМИ ЯВЛЯЮТСЯ НЕОБРАТИМЫМИ
Вы должны обратить внимание что предикаты включающие подзапросы, используют
выражение < скалярная форма > < оператор > < подзапрос >, а не < подзапрос > < оператор > < скалярное выражение >
или,
< подзапрос > < оператор > < подзапрос >. Другими словами, вы не должны записывать предыдущий пример так:
SELECT * FROM Orders WHERE ( SELECT DISTINCT snum FROM Orders WHERE cnum = 2001 ) = snum;
В строгой ANSI
реализации, это
приведет к неудаче, хотя некоторые программы и позволяют делать такие вещи. ANSI также предохраняет вас
от появления
обеих значений при сравнении, которые нужно вывести с помощью подзапроса.