ПРЕДИКАТЫ С ПОДЗАПРОСАМИ ЯВЛЯЮТСЯ НЕОБРАТИМЫМИ

Вы должны обратить внимание что предикаты включающие подзапросы, используют выражение < скалярная форма > < оператор > < подзапрос >, а не < подзапрос > < оператор > < скалярное выражение > или, < подзапрос > < оператор > < подзапрос >. Другими словами, вы не должны записывать предыдущий пример так:
SELECT * FROM Orders WHERE ( SELECT DISTINCT snum FROM Orders WHERE cnum = 2001 ) = snum;
В строгой ANSI реализации, это приведет к неудаче, хотя некоторые программы и позволяют делать такие вещи. ANSI также предохраняет вас от появления обеих значений при сравнении, которые нужно вывести с помощью подзапроса.