Problème :
Vous souhaitez afficher les enregistrements non dupliqués en SQL.
Exemple :
Notre base de données a une table nommée City
avec des données dans les colonnes id
, name
, et country
.
identifiant | nom | pays |
---|---|---|
1 | Madrid | Espagne |
2 | Barcelone | Espagne |
3 | Varsovie | Pologne |
4 | Cracovie | Pologne |
Obtenons les noms des pays sans doublons.
Solution :
Nous utiliserons le mot-clé DISTINCT
. Voici la requête :
SELECT DISTINCT country FROM City;
Voici le résultat de la requête :
pays |
---|
Espagne |
Pologne |
Discussion :
Si vous souhaitez que la requête renvoie uniquement des lignes uniques, utilisez le mot-clé DISTINCT
après SELECT
. DISTINCT
peut être utilisé pour récupérer des lignes uniques à partir d'une ou plusieurs colonnes. Vous devez lister les colonnes après le DISTINCT
mot-clé.
Comment ça marche sous le capot ? Lorsque la requête est exécutée, l'ensemble des données est sélectionné en premier, puis DISTINCT
supprime les lignes qui sont dupliquées compte tenu des colonnes sélectionnées.
Dans notre exemple, l'Espagne et la Pologne apparaissent deux fois dans le tableau. Cependant, après avoir appliqué le mot-clé DISTINCT
, chacun d'eux n'est renvoyé qu'une seule fois.