Regole relative alle sottoquery
Le subquery sono soggette alle seguenti restrizioni:
L'elenco di selezione di una subquery introdotta da un operatore di confronto può includere una sola espressione o un solo nome di colonna, tranne nei casi in cui vengono applicate le parole chiave EXISTS e IN rispettivamente a un'istruzione SELECT * o a un elenco.
Se la clausola WHERE di una query esterna include un nome di colonna, questo deve essere compatibile a livello di join con la colonna dell'elenco di selezione della subquery.
I tipi di dati ntext, text e image non sono utilizzabili nell'elenco di selezione delle subquery.
Poiché le subquery introdotte da un operatore di confronto non modificato (ovvero non seguito dalla parola chiave ANY o ALL) devono restituire un solo valore, non possono includere le clausole GROUP BY e HAVING.
La parola chiave DISTINCT non può essere utilizzata nelle subquery che includono la clausola GROUP BY.
Non è possibile specificare le clausole COMPUTE e INTO.
È possibile specificare la clausola ORDER BY solo se viene specificata anche la clausola TOP.
Le viste create utilizzando una subquery non possono essere aggiornate.
Per convenzione, l'elenco di selezione di una subquery introdotta da EXISTS è costituito da un asterisco (*) anziché da un singolo nome di colonna. Le regole valide per una subquery introdotta da EXISTS corrispondono a quelle seguite per un elenco di selezione standard. Questo tipo di subquery infatti crea un test di esistenza e non restituisce dati, ma solo TRUE o FALSE.