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: Cacher une Image dans une Image | Stockage et Traitement des Images Numériques 2024, Peut
Anonim

Lorsque vous travaillez dans Oracle, vous pouvez constater que certains de vos enregistrements contiennent des doublons. Vous pouvez supprimer ces lignes en double en les identifiant et en utilisant son RowID ou son adresse de ligne. Avant de commencer, vous devez créer une table de sauvegarde au cas où vous auriez besoin de les référencer après avoir supprimé des enregistrements.

Pas

Méthode 1 sur 4: Identification de votre doublon

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

Étape 1. Identifiez le doublon

Dans ce cas, identifiez l'exemple de doublon, "Alan". Assurez-vous que les enregistrements que vous essayez de supprimer sont en fait 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. Identification à partir d'une colonne nommée "Noms

Dans l'instance d'une colonne nommée « Noms », vous remplaceriez « nom_colonne » par Noms.

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

Étape 3. Identification à partir d'autres colonnes

Si vous essayiez d'identifier le doublon par une colonne différente, par exemple l'âge d'Alan plutôt que son nom, vous saisiriez « Âges » à 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 d'un seul doublon

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

Étape 1. Sélectionnez "nom à partir des noms

"Après "SQL", qui signifie 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 le nom en double

Après "SQL, " entrez "supprimer des noms où nom='Alan';." Notez que la majuscule est importante ici, donc cela supprimera toutes les lignes nommées "Alan". Après "SQL", saisissez "commit".

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

Étape 3. Louez la rangée sans doublon

Maintenant que vous avez supprimé toutes les lignes avec le nom d'exemple « Alan », vous pouvez en insérer une en entrant « insérer dans les valeurs de nom ('Alan');." Après "SQL", saisissez "commit" pour créer votre nouvelle ligne.

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

Étape 4. Consultez votre nouvelle liste

Une fois que vous avez terminé les étapes ci-dessus, vous pouvez vérifier que vous n'avez plus d'enregistrements en double en entrant "select * from names".

SQL > sélectionnez le nom parmi les noms; NOM ----------------------------- Alan Carrie Tom Alan lignes sélectionnées. SQL > supprimer des noms où nom='Alan'; lignes supprimées. SQL > valider; Engagement terminé. SQL > insérer dans les valeurs des noms ('Alan'); ligne créée. SQL > valider; Engagement terminé. SQL > sélectionnez * parmi les noms; NOM ------------------------------ Alan Carrie Tom lignes 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 le doublon

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

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

Étape 3. Vérifiez les doublons

Une fois que vous avez terminé ce qui précède, les commandes vérifient si vous avez toujours des enregistrements en double 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 > valider; Engagement terminé.

Méthode 4 sur 4: Suppression de lignes avec des colonnes

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

Étape 1. Sélectionnez vos lignes

Après « SQL, » entrez « sélectionnez * parmi les noms; » pour voir vos lignes.

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 leur colonne

Après "SQL'", entrez "delete from names a where rowid > (select min(rowid) from names b where 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 « valider » afin de vérifier que vous avez bien supprimé les enregistrements en double.

SQL > sélectionnez * parmi les noms; NOM ÂGE ------------------------------ ---------- Alan 50 Carrie 51 Tom 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 Carrie 51 Tom 52 lignes sélectionnées. SQL > valider; Engagement terminé.

Mises en garde

  • Créez une table de sauvegarde dans votre propre connexion que vous pouvez utiliser pour afficher ce qui s'y trouvait avant toute suppression (au cas où vous auriez des questions).

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

Conseillé: