Dans les bases de données SQL, il est assez courant de se retrouver dans une situation où vous avez besoin de retirer les doublons d'un ensemble de résultats. C'est là que l'opérateur DISTINCT
entre en jeu. Il permet de retourner des enregistrements uniques dans le résultat de votre requête.
La bonne syntaxe pour extraire des valeurs uniques d'une colonne spécifique - disons 'EmployeeName' de la table 'Employees' - serait SELECT DISTINCT EmployeeName FROM Employees
. Cette requête retourne toutes les entrées uniques pour 'EmployeeName' de la table 'Employees'.
Il convient de noter que l'opérateur DISTINCT
est insérée juste après SELECT
. Si vous insérez DISTINCT
après le nom de la colonne, comme dans SELECT EmployeeName FROM Employees DISTINCT
, cela donnera une erreur car SQL ne comprendra pas cette syntaxe.
De même, l'expression SELECT UNIQUE EmployeeName FROM Employees
et GET ALL UNIQUE EmployeeName FROM Employees
sont incorrectes car UNIQUE
n'est pas une commande valide dans SQL de cette manière.
Supposons que vous ayez une grande table 'Employees' qui contient des enregistrements de nombreux employés. Certains employés pourraient avoir le même nom et vous voulez obtenir une liste de tous les noms uniques.
Voici à quoi ressemblerait cette requête :
SELECT DISTINCT EmployeeName
FROM Employees;
Imaginez maintenant que vous vouliez aller plus loin et obtenir une liste unique des paires de 'EmployeeName' et 'JobTitle'. Pour ce faire, vous utiliseriez DISTINCT
avec plusieurs colonnes comme suit :
SELECT DISTINCT EmployeeName, JobTitle
FROM Employees;
Ceci retourne une liste de paires uniques de 'EmployeeName' et 'JobTitle'.
Lorsqu'on travaille avec DISTINCT
, il est bon de savoir que cela peut avoir un impact notable sur les performances de la requête, en particulier sur de grandes tables. En effet, SQL doit effectuer une comparaison entre tous les enregistrements pour déterminer quels sont ceux qui sont uniques, ce qui peut prendre beaucoup de temps pour de grandes quantités de données.
Par conséquent, il est conseillé d'utiliser DISTINCT
avec prudence et seulement lorsque cela est nécessaire. Il est souvent préférable de structurer vos données de manière à éviter les doublons au moment de l'insertion plutôt que de compter sur DISTINCT
pour résoudre le problème après coup.