SQL - Gestion des doublons

Il peut y avoir une situation où vous avez plusieurs enregistrements en double dans une table. Lors de la récupération de tels enregistrements, il est plus judicieux de récupérer uniquement les enregistrements uniques au lieu de récupérer les enregistrements en double.

Le SQL DISTINCT Le mot clé, dont nous avons déjà parlé, est utilisé en conjonction avec l'instruction SELECT pour éliminer tous les enregistrements en double et en extrayant uniquement les enregistrements uniques.

Syntaxe

La syntaxe de base d'un mot clé DISTINCT pour éliminer les enregistrements en double est la suivante.

SELECT DISTINCT column1, column2,.....columnN 
FROM table_name
WHERE [condition]

Exemple

Considérez la table CUSTOMERS ayant les enregistrements suivants.

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

Tout d'abord, voyons comment la requête SELECT suivante renvoie des enregistrements de salaire en double.

SQL> SELECT SALARY FROM CUSTOMERS
   ORDER BY SALARY;

Cela produirait le résultat suivant où le salaire de 2000 arrive deux fois, ce qui est un enregistrement en double de la table d'origine.

+----------+
| SALARY   |
+----------+
|  1500.00 |
|  2000.00 |
|  2000.00 |
|  4500.00 |
|  6500.00 |
|  8500.00 |
| 10000.00 |
+----------+

Maintenant, utilisons le mot-clé DISTINCT avec la requête SELECT ci-dessus et voyons le résultat.

SQL> SELECT DISTINCT SALARY FROM CUSTOMERS
   ORDER BY SALARY;

Cela produirait le résultat suivant où nous n'avons aucune entrée en double.

+----------+
| SALARY   |
+----------+
|  1500.00 |
|  2000.00 |
|  4500.00 |
|  6500.00 |
|  8500.00 |
| 10000.00 |
+----------+