Ce tutoriel SQL se concentre sur le mot-clé DISTINCT d’Oracle, et fournit des explications, des exemples et des exercices. Pour les exercices de cette leçon, utilisez ce lien.

Ce tutoriel fait partie de plusieurs posts expliquant comment écrire des requêtes de base dans Oracle. Pour lire d’autres posts concernant ce sujet, veuillez utiliser les liens suivants :

  • Écrire des requêtes SELECT SQL de base
  • Opérateurs arithmétiques SQL
  • Allias de colonnes SQL
  • Concaténation de chaînes SQL
  • Mot-clé DISTINCT Oracle

Le mot-clé DISTINCT Oracle

L’affichage par défaut des requêtes Oracle est toutes les lignes, y compris les lignes dupliquées. Le mot-clé Oracle DISTINCT dans la clause SELECT est utilisé pour éliminer les lignes en double et afficher une liste unique de valeurs.

Par exemple : supposons que nous ayons une table Clients, qui contient une liste de clients de différentes villes : 40 clients de Londres, 30 de Liverpool et 30 de Manchester. On vous a demandé d’afficher la liste des villes où résident ces clients :

SELECT cityFROM customers

Cette instruction Oracle n’est pas très utile car elle récupère 100 lignes (Londres revient 40 fois, Liverpool revient 30 fois et Manchester revient 30 fois), alors que notre intention était d’afficher seulement 3 lignes.

Pour résoudre ce problème et ne récupérer que des valeurs uniques, utilisez le mot clé Oracle DISTINCT :

SELECT DISTINCT column_nameFROM table_name SELECT DISTINCT cityFROM customers

Le résultat :

CITY------LondonLiverpoolManchester

Note : Le mot clé Oracle DISTINCT doit être inclus immédiatement après le mot clé Oracle SELECT.

L’instruction Oracle DISTINCT sur plusieurs colonnes

Après le mot clé Oracle DISTINCT, il est possible de spécifier plus d’une colonne. Le qualificatif Oracle DISTINCT affecte toutes les colonnes sélectionnées, ce faisant, le résultat affichera la combinaison unique des valeurs des différentes colonnes. Par exemple, une liste de clients de différentes villes et pays :

.

Nom du client Ville Pays
John Smith Liverpool Angleterre
Sophia Williams Londres Angleterre
Emma Miller Liverpool Angleterre
Olivia Wilson Paris France
Logan Davis Paris France

Vous pouvez voir qu’il y a deux clients de Liverpool-Angleterre, deux clients de Paris-France, et un autre client de Londres-Angleterre.

L’exécution de l’instruction Oracle DISTINCT sur la colonne Pays permet de récupérer 2 lignes (Angleterre,Paris).

SELECT DISTINCT countryFROM customers

L’exécution de l’instruction Oracle DISTINCT sur la colonne Ville permet de récupérer 3 lignes (Liverpool, Londres, paris).

SELECT DISTINCT city FROM customers

Si vous exécutez l’instruction Oracle DISTINCT sur les deux colonnes Ville et Pays:

SELECT DISTINCT city , countryFROM customers

Trois résultats sont récupérés – Liverpool Angleterre, Londres Angleterre, Paris France.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.