Les valeurs en double dans une base de données peuvent être un problème lors de l'exécution des opérations très précises. Ils peuvent entraîner une seule valeur en cours de traitement plusieurs fois, entachant le résultat. Les enregistrements en double prennent également plus d'espace que nécessaire, ce qui entraîne des performances lentes.
Dans ce guide, vous comprendrez comment vous pouvez trouver et supprimer des lignes en double dans une base de données SQL Server.
Les bases
Avant de continuer plus loin, qu'est-ce qu'une ligne en double? Nous pouvons classer une ligne en double si elle contient un nom et une valeur similaires à une autre ligne sur la table.
Pour illustrer comment trouver et supprimer des lignes en double dans une base de données, commençons par créer des exemples de données comme indiqué dans les requêtes ci-dessous:
Utilisez DupliatedB;Dans l'exemple de requête ci-dessus, nous créons un tableau contenant des informations utilisateur. Dans le bloc de clause suivant, nous utilisons l'insert dans l'instruction pour ajouter des valeurs en double au tableau des utilisateurs.
Trouver des lignes en double
Une fois que nous avons les exemples de données dont nous avons besoin, vérifions les valeurs en double dans le tableau des utilisateurs. Nous pouvons le faire en utilisant la fonction de comptage comme:
Sélectionnez le nom d'utilisateur, le courrier électronique, le téléphone, les états, le comte (*) comme count_value dans le groupe d'utilisateurs par nom d'utilisateur, e-mail, téléphone, états ayant le comte (*)> 1;L'extrait de code ci-dessus doit renvoyer les lignes en double dans la base de données et combien de fois ils apparaissent sur la table.
Un exemple de sortie est comme indiqué:
Ensuite, nous supprimons les lignes en double.
Supprimer les lignes en double
L'étape suivante consiste à supprimer les lignes en double. Nous pouvons le faire en utilisant la requête de suppression comme indiqué dans l'exemple d'extrait ci-dessous:
Supprimer des utilisateurs où ID pas dans (sélectionnez Max (ID) dans le groupe des utilisateurs par nom d'utilisateur, e-mail, téléphone, états);
La requête doit affecter les lignes en double et garder les lignes uniques dans le tableau.
Nous pouvons voir la table comme:
Sélectionner * chez les utilisateurs;La valeur résultante est comme indiqué:
Supprimer les lignes en double (join)
Vous pouvez également utiliser une instruction JOIN pour supprimer les lignes en double d'un tableau. Un exemple d'échantillon de code de requête est comme indiqué ci-dessous:
Supprimer un des utilisateurs une jointure intérieureGardez à l'esprit que l'utilisation de la jonction intérieure pour supprimer les doublons peut prendre plus de temps que les autres dans une vaste base de données.
Supprimer la ligne duplicate (row_number ())
La fonction row_number () attribue un numéro séquentiel aux lignes d'un tableau. Nous pouvons utiliser cette fonctionnalité pour supprimer les doublons d'un tableau.
Considérez l'exemple de requête ci-dessous:
Utilisez dupliquéBLa requête ci-dessus doit utiliser les valeurs renvoyées de la fonction row_number () pour supprimer les doublons. Une ligne en double produira une valeur supérieure à 1 à partir de la fonction row_number ().
Conclusion
Garder vos bases de données propres en supprimant les lignes en double des tables est bon. Cela aide à améliorer les performances et l'espace de stockage. En utilisant les méthodes de ce tutoriel, vous nettoyez vos bases de données en toute sécurité.