Subquery restrictions
To construct queries efficiently, you must understand the restrictions of subqueries in WHERE clauses.
-
Subqueries must appear on the right side of an expression.
-
Nested subqueries are not supported.
-
A single query can have only one subquery expression.
-
Subquery predicates must appear as top-level conjuncts.
-
Subqueries support four logical operators in query predicates: IN, NOT IN, EXISTS, and NOT EXISTS.
-
The IN and NOT IN logical operators may select only one column in a WHERE clause subquery.
-
The EXISTS and NOT EXISTS operators must have at least one correlated predicate.
-
The left side of a subquery must qualify all references to table columns.
-
References to columns in the parent query are allowed only in the WHERE clause of the subquery.
-
Subquery predicates that reference a column in a parent query must use the equals (=) predicate operator.
-
Subquery predicates may not refer only to columns in the parent query.
-
Correlated subqueries with an implied GROUP BY statement may return only one row.
-
All unqualified references to columns in a subquery must resolve to tables in the subquery.
-
Correlated subqueries cannot contain windowing clauses.