Prédicats ALL, DISTINCT, DISTINCTROW, TOP
Applies ToAccess pour Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Spécifie les enregistrements sélectionnés avec des requêtes SQL.

Syntaxe

SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]TABLE FROM

Une instruction SELECT contenant ces prédicats comprend les éléments suivants :

Partie

Description

ALL

Supposé si vous n’incluez pas l’un des prédicats. Le moteur de base de données Microsoft Access sélectionne tous les enregistrements qui répondent aux conditions de l’instruction SQL. Les deux exemples suivants sont équivalents et retournent tous les enregistrements de la table Employees :

SELECT ALL *FROM EmployeesORDER BY EmployeeID;
SELECT *FROM EmployeesORDER BY EmployeeID;

DISTINCT

Omet les enregistrements qui contiennent des données en double dans les champs sélectionnés. Pour être incluses dans les résultats de la requête, les valeurs de chaque champ répertorié dans l’instruction SELECT doivent être uniques. Par exemple, plusieurs employés répertoriés dans une table Employés peuvent avoir le même nom de famille. Si deux enregistrements contiennent Smith dans le champ LastName, l’instruction SQL suivante ne retourne qu’un seul enregistrement contenant Smith :

SELECT DISTINCT LastNameFROM Employees;

Si vous omettez DISTINCT, cette requête retourne les deux enregistrements Smith.

Si la clause SELECT contient plusieurs champs, la combinaison de valeurs de tous les champs doit être unique pour qu’un enregistrement donné soit inclus dans les résultats.

La sortie d’une requête qui utilise DISTINCT n’est pas modifiable et ne reflète pas les modifications ultérieures apportées par d’autres utilisateurs.

DISTINCTROW

Omet les données basées sur des enregistrements en double entiers, et pas seulement sur des champs en double. Par exemple, vous pouvez créer une requête qui joint les tables Customers et Orders sur le champ CustomerID. La table Customers ne contient aucun champ CustomerID en double, mais la table Orders, car chaque client peut avoir plusieurs commandes. L’instruction SQL suivante montre comment utiliser DISTINCTROW pour produire une liste de sociétés qui ont au moins une commande, mais sans aucun détail sur ces commandes :

SELECT DISTINCTROW CompanyNameFROM Customers INNER JOIN OrdersON Customers.CustomerID = Orders.CustomerIDORDER BY CompanyName;

Si vous omettez DISTINCTROW, cette requête produit plusieurs lignes pour chaque entreprise qui a plusieurs commandes.

DISTINCTROW n’a d’effet que lorsque vous sélectionnez des champs à partir de certaines tables utilisées dans la requête, mais pas dans toutes. DISTINCTROW est ignoré si votre requête n’inclut qu’une seule table, ou si vous extrayez des champs de toutes les tables.

TOP n [PERCENT]

Retourne un certain nombre d’enregistrements qui se trouvent en haut ou en bas d’une plage spécifiée par une clause ORDER BY. Supposons que vous vouliez les noms des 25 meilleurs étudiants de la classe de 1994 :

SELECT TOP 25FirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage DESC;

Si vous n’incluez pas la clause ORDER BY, la requête retourne un jeu arbitraire de 25 enregistrements de la table Students qui satisfont à la clause WHERE.

Le prédicat TOP ne choisit pas entre des valeurs égales. Dans l’exemple précédent, si les vingt-cinquième et vingt-sixième moyennes les plus élevées sont identiques, la requête retourne 26 enregistrements.

Vous pouvez également utiliser le mot réservé PERCENT pour renvoyer un certain pourcentage d’enregistrements qui se trouvent en haut ou en bas d’une plage spécifiée par une clause ORDER BY. Supposons qu’au lieu des 25 meilleurs étudiants, vous souhaitiez les 10 % les plus bas de la classe :

SELECT TOP 10 PERCENTFirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage ASC;

Le prédicat ASC spécifie un retour des valeurs inférieures. La valeur qui suit TOP doit être un entier non signé.

TOP n’affecte pas si la requête peut ou non être mise à jour.

table

Nom de la table d'où sont extraits les enregistrements.

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.