Spécifie les enregistrements sélectionnés avec des requêtes SQL.
Syntaxe
SELECT [ALL | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
TABLE FROMUne 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 :
|
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 :
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 :
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 :
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 :
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. |