Instruction SQL SELECT DISTINCT
L'instruction SQL SELECT DISTINCT
L' SELECT DISTINCT
instruction est utilisée pour renvoyer uniquement des valeurs distinctes (différentes).
Dans un tableau, une colonne contient souvent de nombreuses valeurs en double ; et parfois vous ne voulez lister que les différentes valeurs (distinctes).
Syntaxe SELECT DISTINCT
SELECT DISTINCT column1, column2, ...
FROM table_name;
Base de données de démonstration
Vous trouverez ci-dessous une sélection de la table "Clients" dans l'exemple de base de données Northwind :
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
SELECT Exemple sans DISTINCT
L'instruction SQL suivante sélectionne toutes les valeurs (y compris les doublons) de la colonne "Pays" de la table "Clients" :
Exemple
SELECT Country FROM Customers;
Maintenant, utilisons l' SELECT DISTINCT
instruction et voyons le résultat.
SELECT DISTINCT Exemples
L'instruction SQL suivante sélectionne uniquement les valeurs DISTINCT de la colonne "Pays" de la table "Clients" :
Exemple
SELECT DISTINCT Country FROM Customers;
L'instruction SQL suivante répertorie le nombre de pays clients différents (distincts) :
Exemple
SELECT COUNT(DISTINCT Country) FROM Customers;
Remarque : L'exemple ci-dessus ne fonctionnera pas dans Firefox ! Parce que COUNT(DISTINCT nom_colonne ) n'est pas pris en charge dans les bases de données Microsoft Access. Firefox utilise Microsoft Access dans nos exemples.
Voici la solution de contournement pour MS Access :
Exemple
SELECT Count(*) AS DistinctCountries
FROM (SELECT DISTINCT Country FROM Customers);