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.
Prédicats ALL, DISTINCT, DISTINCTROW, TOP

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 Employees
ORDER BY EmployeeID;
SELECT *
FROM Employees
ORDER 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 LastName
FROM 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 CompanyName
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER 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 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER 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 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER 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.

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.

×