Академический Документы
Профессиональный Документы
Культура Документы
une clause FROM rgulire comportant les noms d'une ou plusieurs tables
ou vues ;
une clause WHERE facultative ;
une clause GROUP BY facultative ;
une clause HAVING facultative.
La requte SELECT d'une sous-requte se place toujours entre parenthses. Elle
ne peut pas contenir de clause COMPUTE ou FOR BROWSE et peut inclure une
clause ORDER BY uniquement lorsqu'une clause TOP est galement spcifie.
Une sous-requte peut tre imbrique dans une clause WHERE ou HAVING d'une
instruction externe SELECT, INSERT, UPDATE, DELETE ou dans une autre sousrequte. Vous pouvez aller jusqu' 32 niveaux d'imbrication mais cette limite
dpend de la mmoire disponible et de la complexit des autres expressions
constituant la requte. Les requtes individuelles, pour leur part, n'acceptent pas
toujours 32 niveaux d'imbrication. Une sous-requte peut apparatre tout
endroit o une expression est autorise, condition de ne retourner qu'une seule
valeur.
Si une table apparat uniquement dans une sous-requte et pas dans la requte
externe, les colonnes de cette table ne peuvent pas figurer dans les rsultats (la
liste SELECT de la requte externe).
Les instructions contenant une sous-requte se prsentent gnralement sous
une des formes suivantes :
WHERE expression [NOT] IN (subquery)
WHERE expression comparison_operator [ANY | ALL] (subquery)
WHERE [NOT] EXISTS (subquery)
Dans certaines instructions Transact-SQL, la sous-requte peut tre value
comme s'il s'agissait d'une requte indpendante. Thoriquement, les rsultats
de la sous-requte viennent s'insrer dans la requte externe (bien que ce ne soit
pas ncessairement comme cela que Microsoft SQL Server traite en ralit les
instructions Transact-SQL comportant des sous-requtes).
Il existe trois sous-requtes de base :
les sous-requtes qui oprent sur des listes, introduites par IN ou par un
oprateur de comparaison modifi par ANY ou ALL ;
les sous-requtes introduites par un oprateur de comparaison non modifi
et qui doivent retourner une valeur unique ;
les sous-requtes introduites par EXISTS qui constituent des tests
d'existence.