Comprendre les sous-requêtes
Une sous-requête est une instruction SELECT imbriquée dans une autre requête. La possibilité d’imbriquer une requête dans une autre peut améliorer votre capacité à créer des requêtes efficaces en T-SQL. En général, les sous-requêtes sont évaluées une fois et fournissent leurs résultats à la requête externe.
Utilisation des sous-requêtes
Une sous-requête est une instruction SELECT imbriquée ou incorporée dans une autre requête. La requête imbriquée, qui est la sous-requête, est appelée requête interne. La requête contenant la requête imbriquée est la requête externe.
L’objectif d’une sous-requête est de retourner des résultats à la requête externe. La forme des résultats déterminera si la sous-requête est une sous-requête scalaire ou à valeurs multiples :
- Les sous-requêtes scalaires renvoient une valeur unique. Les requêtes externes doivent traiter un résultat unique.
- Les sous-requêtes à valeurs multiples renvoient un résultat similaire à une table à une seule colonne. Les requêtes externes doivent être en mesure de traiter plusieurs valeurs.
Outre le choix entre les sous-requêtes scalaires et à valeurs multiples, les sous-requêtes peuvent être des sous-requêtes autonomes ou elles peuvent être corrélées avec la requête externe :
- Les sous-requêtes autonomes peuvent être écrites sous forme de requêtes autonomes, sans dépendances sur la requête externe. Une sous-requête autonome est traitée une seule fois, quand la requête externe s’exécute et passe ses résultats à cette requête externe.
- Les sous-requêtes corrélées font référence à une ou plusieurs colonnes de la requête externe et, par conséquent, dépendent de cette dernière. Les sous-requêtes corrélées ne peuvent pas être exécutées séparément de la requête externe.