Spécifie les enregistrements sélectionnés avec SQL requêtes.
Syntaxe
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [POURCENTAGE]]]
Tableau FROM
Une instruction SELECT contenant ces prédicats contient les parties suivantes :
Partie | Description |
---|---|
ALL |
Pris en compte si vous n’incluez pas les prédicats. Le moteur de base de données Access sélectionne tous les enregistrements qui répondent aux conditions dans l’SQL données. Les deux exemples suivants sont équivalents et retournent tous les enregistrements de la table Employees (Employés) :
|
DISTINCT |
Omet les enregistrements contenant 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. Si deux enregistrements contiennent Smith dans le champ Nom, l’instruction SQL suivante renvoie un seul enregistrement contenant Smith :
Si vous omettez DISTINCT, cette requête renvoie les deux enregistrements Smith. Si la clause SELECT contient plusieurs champs, la combinaison des valeurs de tous les champs doit être unique pour qu’un enregistrement donné soit inclus dans les résultats. Le résultat d’une requête qui utilise DISTINCT n’est pas actualisable et ne reflète pas les modifications ultérieures apportées par d’autres utilisateurs. |
DISTINCTROW |
Omet les données sur la base d’enregistrements complets en double, pas seulement de champs en double. Par exemple, vous pouvez créer une requête qui joint les tables Clients et Commandes dans le champ CustomerID. La table Clients ne contient aucun champ CustomerID en double, mais la table Commandes en fait, car chaque client peut avoir plusieurs commandes. L’SQL suivante vous montre comment utiliser DISTINCTROW pour produire une liste de sociétés qui ont au moins une commande, mais sans détails sur ces commandes :
Si vous omettez DISTINCTROW, cette requête produit plusieurs lignes pour chaque société qui possède plusieurs commandes. DISTINCTROW n’a d’effet que lorsque vous sélectionnez des champs à partir de certaines tables, mais pas toutes, utilisées dans la requête. 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 [POURCENTAGE] |
Renvoie un certain nombre d’enregistrements en haut ou en bas d’une plage spécifiée par une clause ORDER BY. Supposons que vous vouliez le nom des 25 meilleurs étudiants de la classe 1994 :
Si vous n’incluez pas la clause ORDER BY, la requête retourne un ensemble arbitraire de 25 enregistrements de la table Students qui répondent à la clause WHERE. Le prédicat TOP n’a pas le choix entre des valeurs égales. Dans l’exemple précédent, si les moyennes de point de note les plus élevées des vingt cinquième et vingt-sixième sont identiques, la requête retournera 26 enregistrements. Vous pouvez également utiliser le mot réservé PERCENT pour renvoyer un certain pourcentage d’enregistrements en haut ou en bas d’une plage spécifiée par une clause ORDER BY. Supposons que, au lieu des 25 meilleurs étudiants, vous vouliez les 10 pour cent inférieurs de la classe :
Le prédicat ASC spécifie un retour des valeurs inférieures. La valeur qui suit la valeur TOP doit être un integer non signé. La mise à jour de la requête n’a aucune incidence sur la mise à jour de la requête. |
table |
Nom de la table d'où sont extraits les enregistrements. |