4 manières de supprimer les enregistrements en double dans Oracle

Table des matières:

4 manières de supprimer les enregistrements en double dans Oracle
4 manières de supprimer les enregistrements en double dans Oracle

Vidéo: 4 manières de supprimer les enregistrements en double dans Oracle

Vidéo: 4 manières de supprimer les enregistrements en double dans Oracle
Vidéo: Comment obtenir Microsoft Office GRATUIT , WORD, EXCEL etc (2021) 2024, Novembre
Anonim

Lorsque vous travaillez dans Oracle, vous pouvez trouver des doublons sur certains enregistrements. Vous pouvez supprimer les lignes en double en les identifiant et en utilisant l'adresse de ligne d'alias RowID correspondante. Avant de commencer, créez une table de sauvegarde au cas où vous auriez besoin d'une référence après la suppression de l'enregistrement.

Étape

Méthode 1 sur 4: Identification des doublons

Supprimer les enregistrements en double dans Oracle Étape 1
Supprimer les enregistrements en double dans Oracle Étape 1

Étape 1. Identifiez les doublons

Dans cet exemple, nous identifions le doublon "Alan". Assurez-vous que les enregistrements à supprimer sont bien des doublons en entrant le code SQL ci-dessous.

Supprimer les enregistrements en double dans Oracle Étape 2
Supprimer les enregistrements en double dans Oracle Étape 2

Étape 2. Identifiez-vous dans la colonne intitulée « Nom »

Dans le cas où la colonne a le titre "Nom", vous devez remplacer " nom_colonne " par Nom.

Supprimer les enregistrements en double dans Oracle Étape 3
Supprimer les enregistrements en double dans Oracle Étape 3

Étape 3. Identifiez les autres colonnes

Si vous essayez d'identifier les doublons de différentes colonnes, par exemple l'âge d'Alan au lieu de son nom, saisissez « Age » à la place de « nom_colonne » et ainsi de suite.

sélectionnez column_name, count(column_name) dans le groupe de tables par column_name ayant count (column_name) > 1;

Méthode 2 sur 4: Suppression des doublons uniques

Supprimer les enregistrements en double dans Oracle Étape 4
Supprimer les enregistrements en double dans Oracle Étape 4

Étape 1. Sélectionnez « nom parmi les noms »

Après "SQL" (abréviation de Standard Query Language), entrez " select name from names ".

Supprimer les enregistrements en double dans Oracle Étape 5
Supprimer les enregistrements en double dans Oracle Étape 5

Étape 2. Supprimez toutes les lignes avec des noms en double

Après "SQL", saisissez " delete from names where name ='Alan';." Il est à noter que la capitalisation est ici importante pour que cette étape puisse supprimer toutes les lignes nommées "Alan". Après "SQL", entrez "commit"

Supprimer les enregistrements en double dans Oracle Étape 6
Supprimer les enregistrements en double dans Oracle Étape 6

Étape 3. Entrez à nouveau les lignes sans doublons

Maintenant que vous avez supprimé toutes les lignes et que vous les avez remplacées par "Alan", remplissez-en une en entrant " insert in name values ('Alan');." Après "SQL", entrez " commit " pour créer une nouvelle ligne.

Supprimer les enregistrements en double dans Oracle Step 7
Supprimer les enregistrements en double dans Oracle Step 7

Étape 4. Affichez la nouvelle liste

Après avoir terminé les étapes ci-dessus, vous pouvez vérifier qu'il n'y a plus d'enregistrements en double en entrant " select * from names ".

SQL > sélectionnez le nom parmi les noms; NOM ----------------------------- Alan Citra Tomi Alan Baris sélectionné. SQL > supprimer des noms où nom='Alan'; La ligne est supprimée. SQL > commits; \Commit terminé. SQL > insérer dans les noms values('Alan'); ligne créée. SQL > commits; Engagement terminé. SQL > sélectionnez * parmi les noms; NOM ------------------------------ Alan Citra Tomi rangées sélectionnées.

Méthode 3 sur 4: Suppression de plusieurs doublons

Supprimer les enregistrements en double dans Oracle Étape 8
Supprimer les enregistrements en double dans Oracle Étape 8

Étape 1. Sélectionnez le RowID que vous souhaitez supprimer

Après "SQL", entrez " select rowid, name from names;."

Supprimer les enregistrements en double dans Oracle Étape 9
Supprimer les enregistrements en double dans Oracle Étape 9

Étape 2. Supprimez les doublons

Après "SQL", saisissez " delete from names a where rowid > (select min(rowid) from names b where b.name=a.name);" pour supprimer les doublons.

Supprimer les enregistrements en double dans Oracle Step 10
Supprimer les enregistrements en double dans Oracle Step 10

Étape 3. Vérifiez les doublons

Après avoir terminé les étapes ci-dessus, recherchez les doublons en entrant " select rowid, name from names;" puis "s'engager".

SQL> sélectionnez rowid, nom à partir des noms; ROWID NAME ------------------ ------------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan rangées sélectionnées. SQL > supprimer des noms a où rowid > (sélectionner min(rowid) des noms b où b.name=a.name); lignes supprimées. SQL> sélectionnez rowid, nom à partir des noms; ROWID NAME ------------------ ------------------------------- AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Lignes de Tom sélectionnées. SQL > commits; Engagement terminé.

Méthode 4 sur 4: Suppression de lignes par colonnes

Supprimer les enregistrements en double dans Oracle Étape 11
Supprimer les enregistrements en double dans Oracle Étape 11

Étape 1. Sélectionnez la ligne

Après "SQL", saisissez " select * from names;" pour pouvoir voir la ligne.

Supprimer les enregistrements en double dans Oracle Étape 12
Supprimer les enregistrements en double dans Oracle Étape 12

Étape 2. Supprimez les lignes en double en identifiant leurs colonnes

Après "SQL'", entrez " supprimer des noms a où rowid > (sélectionnez min(rowid) des noms b où b.name=a.name et b.age=a.age);" pour supprimer les enregistrements en double.

Supprimer les enregistrements en double dans Oracle Étape 13
Supprimer les enregistrements en double dans Oracle Étape 13

Étape 3. Vérifiez les doublons

Une fois que vous avez terminé les étapes ci-dessus, entrez " select * from names; " puis " commit " pour voir si les doublons ont bien été supprimés.

SQL > sélectionnez * parmi les noms; NOM ÂGE ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 lignes sélectionnées. SQL > supprimer des noms a où rowid > (sélectionner min(rowid) des noms b où b.name=a.name et b.age=a.age); ligne supprimée. SQL > sélectionnez * parmi les noms; NOM ÂGE ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 rangs sélectionnés. SQL > commits; Engagement terminé.

Avertissement

  • Créez un tableau en double dans votre login afin qu'il puisse être utilisé comme référence de contenu lorsqu'aucune donnée n'a été supprimée (au cas où vous auriez des questions).

    SQL > créer la table alan.names_backup en tant que select * from names; Tableau créé.

Conseillé: