Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Une sous-période est une instruction SELECT imbriquée dans une instruction SELECT, SELECT...INTO, INSERT...INTO, DELETE ou UPDATE ou dans une autre sous-enquête.

Syntaxe

Vous pouvez utiliser trois formes de syntaxe pour créer une sous-partie :

comparaison [N’IMPORTE QUELLE | TOUT | CERTAINS] (sqlstatement)

expression [PAS] DANS (sqlstatement)

[NON] EXISTS (sqlstatement)

Une sous-enquête se composant des éléments ci-après :

Partie

Description

Comparaison

Un expression et un opérateur de comparaison qui compare l’expression aux résultats de la sous-enquête.

expression

Une expression pour laquelle l'ensemble des résultats de la sous-requête est recherché.

sqlstatement

Une instruction SELECT, suivant le même format et les mêmes règles que toute autre instruction SELECT. Il doit être entre parenthèses.


Remarques

Vous pouvez utiliser une sous-requête à la place d'une expression dans la liste des champs d'une instruction SELECT ou dans une clause WHERE ou HAVING. Dans une sous-requête, vous utilisez une instruction SELECT pour fournir un ensemble d'une ou plusieurs valeurs spécifiques à évaluer dans l'expression de la clause WHERE ou HAVING.

Utilisez le prédicat ANY ou SOME (ces derniers sont synonymes) pour récupérer les enregistrements de la requête principale qui correspondent à la comparaison avec au moins un enregistrement récupéré dans la sous-requête. L'exemple suivant renvoie tous les produits dont le prix unitaire est supérieur à celui de tout produit vendu avec une remise de 25 % ou plus :

SELECT * FROM Products WHERE UnitPrice > ANY (SELECT UnitPrice FROM OrderDetails WHERE Discount >= .25);

Utilisez le prédicat ALL pour récupérer uniquement les enregistrements de la requête principale qui satisfont à la comparaison avec tous les enregistrements récupérés dans la sous-requête. Si vous remplacez ANY par ALL dans l'exemple précédent, la requête renverra uniquement les produits dont le prix unitaire est supérieur à celui de tous les produits vendus avec une remise de 25 % ou plus. Celui-ci est beaucoup plus restrictif.

Utilisez le prédicat IN pour récupérer uniquement les enregistrements de la requête principale pour lesquels un enregistrement de la sous-requête contient une valeur égale. L’exemple suivant renvoie tous les produits avec une remise de 25 % ou plus :

SELECT * FROM Products WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Discount >= .25);

Inversement, vous pouvez utiliser NOT IN pour récupérer uniquement les enregistrements de la requête principale pour lesquels aucun enregistrement de la sous-requête ne contient une valeur égale.

Utilisez le prédicat EXISTS (avec le mot réservé NOT facultatif) dans les comparaisons vrai/faux pour déterminer si la sous-requête renvoie des enregistrements.

Vous pouvez également utiliser des alias de noms de tables dans une sous-requête pour faire référence aux tables listées dans une clause FROM en dehors de la sous-requête. L'exemple suivant renvoie les noms des employés dont le salaire est égal ou supérieur au salaire moyen de tous les employés ayant la même fonction. La table des employés reçoit l'alias « T1 » :

SELECT LastName, FirstName, Title, Salary FROM Employees AS T1 WHERE Salary >= (SELECT Avg(Salary) FROM Employees WHERE T1.Title = Employees.Title) Order by Title;

Dans l’exemple précédent, la mot réservé AS est facultative.

Vous pouvez aussi utiliser des sous-requêtes comme prédicats (celles disponibles dans la clause WHERE) dans une requête Analyse croisée. Les sous-requêtes en tant que sortie (celles de la liste SELECT) ne sont pas autorisées dans les requêtes de type tableau croisé.



Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×