Prédicats ALL, DISTINCT, DISTINCTROW, TOP

Prédicats ALL, DISTINCT, DISTINCTROW, TOP

Important :  Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

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

Syntaxe

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

Une instruction SELECT contenant ces prédicats se compose des éléments suivants :

Élément

Description

ALL

Valeur par défaut si vous n'incluez pas un des prédicats. Le moteur de base de données Microsoft Access sélectionne tous les enregistrements qui remplissent les conditions dans l'instruction SQL. Les deux exemples suivants sont équivalents et renvoient tous les enregistrements de la table employés :

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 inclus 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 Martin dans le champ Nom, l’instruction SQL suivante renvoie un seul enregistrement contenant Martin :

SELECT DISTINCT LastName
FROM Employees;

Si vous omettez DISTINCT, cette requête renvoie les deux enregistrements Martin.

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

La sortie d’une requête qui utilise DISTINCT ne peut pas être mise à jour et ne reflète pas les modifications qui sont faites ultérieurement par d’autres utilisateurs.

DISTINCTROW

Omet les données basées sur des enregistrements entièrement en double, pas uniquement des champs en double. Par exemple, vous pouvez créer une requête qui joigne les tables Clients et Commandes sur le champ Code client. Contrairement à la table Clients, la table Commandes contient des champs Code client en double car chaque client peut avoir plusieurs commandes. L’instruction SQL suivante indique comment utiliser DISTINCTROW pour produire une liste de sociétés qui ont au moins une commande, mais sans information détaillée 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 génère plusieurs lignes pour les sociétés qui ont plus d’une commande.

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

TOP n [PERCENT]

Renvoie un certain nombre d’enregistrements qui se situent à l’extrémité supérieure ou inférieure d’une plage spécifiée par une clause ORDER BY. Supposons que vous souhaitiez le nom des 25 meilleurs étudiants de la promotion 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 renvoie un jeu arbitraire de 25 enregistrements qui remplissent les conditions de la clause WHERE dans la table Étudiants.

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 de notes avaient été identiques, la requête aurait renvoyé 26 enregistrements.

Vous pouvez également utiliser le mot réservé PERCENT pour renvoyer un certain pourcentage d’enregistrements qui se situent à l’extrémité supérieure ou inférieure de la plage spécifiée par une clause ORDER BY. Si, par exemple, vous vouliez extraire les 10 derniers élèves de la classe, au lieu des 25 premiers :

SELECT TOP 10 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage ASC;

Le prédicat ASC spécifie les dernières valeurs. La valeur qui suit TOP doit être un entier non signé.

TOP n’a pas d’incidence sur le fait que la requête puisse être mise à jour ou non.

table

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



Remarque : Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

Développez vos compétences
Découvrez des formations
Accédez aux nouvelles fonctionnalités en avant-première
Rejoignez le programme Office Insider

Ces informations vous ont-elles été utiles ?

Nous vous remercions pour vos commentaires.

Merci pour vos commentaires. Il serait vraisemblablement utile pour vous de contacter l’un de nos agents du support Office.

×