Supprimer les données en double dans oracle

Si vous travaillez dans Oracle, certaines de vos données peuvent apparaître plusieurs fois. Vous pouvez supprimer ces doublons en les identifiant et en utilisant leur adresse de ligne. Avant de commencer, faites une copie du tableau au cas où vous auriez besoin de vous y référer après avoir supprimé les données.

Pas

Méthode 1 sur 4: Détecter les doublons

Image intitulée Supprimer les enregistrements en double dans Oracle Step 1
1. Identifier le doublon. Dans ce cas, identifiez l`échantillon en double, `Alan`. Assurez-vous que les enregistrements que vous essayez de supprimer sont en fait des doublons en entrant la commande SQL ci-dessous.
Image intitulée Supprimer les enregistrements en double dans Oracle Step 2
2. Rechercher dans une colonne `Noms`. Dans le cas d`une colonne `Noms`, remplissez-la pour `nom_colonne`.
Image intitulée Supprimer les enregistrements en double dans Oracle Step 3
3. Rechercher dans d`autres colonnes. Si vous essayez de trouver des doublons dans une autre colonne, dites l`âge d`Alan au lieu de son nom, vous pouvez mettre `Age` avant `column_name`, etc.
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: Supprimer un seul doublon

Image intitulée Supprimer les enregistrements en double dans Oracle Step 4
1. Sélectionnez « des noms à partir des noms ». Après `SQL` (Standard Query Language), tapez `select name from names`.
Image intitulée Supprimer les enregistrements en double dans Oracle Step 5
2. Supprimer toutes les lignes avec le nom en double. Après `SQL` tapez `delete from names where name=`Alan`;`. Notez que la majuscule est importante ici, donc cela supprimera toutes les lignes nommées « Alan ». Tapez `commit` après `SQL`.
Image intitulée Supprimer les enregistrements en double dans Oracle Step 6
3. Entrez à nouveau la ligne sans doublon. Maintenant que vous avez supprimé toutes les lignes avec le nom d`exemple `Alan`, vous pouvez en remettre une en entrant `insert into name values ​​​​(`Alan`);.` Après `SQL` tapez `commit` pour créer la nouvelle ligne.
Image intitulée Supprimer les enregistrements en double dans Oracle Step 7
4. Découvrez votre nouvelle liste. Une fois que vous avez terminé les étapes ci-dessus, vous pouvez vérifier si vous n`avez pas de données en double avec la commande `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 > s`engager; Validation terminée. SQL > insérer dans les noms values(`Alan`); ligne créée. SQL > s`engager; Validation terminée. SQL > sélectionnez * parmi les noms ; NOM ---------------------------- Alan Carrie Tom lignes sélectionnées.

Méthode3 sur 4:Supprimer plusieurs doublons

Image intitulée Supprimer les enregistrements en double dans Oracle Step 8
1. Sélectionnez l`adresse de ligne (ID de ligne) que vous souhaitez supprimer. Après `SQL` tapez `select rowid, name from names;`.
Image intitulée Supprimer les enregistrements en double dans Oracle Step 9
2. Supprimer le doublon. Après `SQL` tapez `delete from names a where rowid > (sélectionnez min(rowid) à partir des noms b où b.nom=un.Nom);` supprimer les doublons de données.
Image intitulée Supprimer les enregistrements en double dans Oracle Step 10
3. Vérifier les doublons. Après avoir terminé ce qui précède, vérifiez si vous avez toujours des données en double en tapant « select rowid, name from names ; » puis `s`engager`.
SQL > sélectionnez rowid, nom à partir des noms ; ROWIDNAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan rows sélectionné. SQL > supprimer des noms un où rowid > (sélectionnez min(rowid) à partir des noms b où b.nom=un.Nom ); lignes supprimées. SQL > sélectionnez rowid, nom à partir des noms ; ROWIDNAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Lignes de Tom sélectionnées. SQL > s`engager; Validation terminée.

Méthode4 sur 4:Supprimer des lignes de colonnes

Image intitulée Supprimer les enregistrements en double dans Oracle Step 11
1. Sélectionnez les lignes. Après `SQL` tapez `select *from names;` pour voir les lignes choisies.
Image intitulée Supprimer les enregistrements en double dans Oracle Step 12
2. Supprimer les lignes en double en identifiant leur colonne. Après `SQL` tapez `delete from names a where rowid > (sélectionnez min(rowid) à partir des noms b où b.nom=un.nom et b.âge=a.âge);` pour supprimer les données en double.
Image intitulée Supprimer les enregistrements en double dans Oracle Step 13
3. Vérifier les doublons. Une fois que vous avez terminé les étapes ci-dessus, tapez `select *from names;` puis « s`engager » pour vérifier si vous avez supprimé avec succès toutes les données en double.
SQL > sélectionnez * parmi les noms ; NAMEAGE ---------------------------------- ---------- Alan50 Carrie51 Tom52 Alan50 lignes sélectionnées. SQL > supprimer des noms un où rowid > (sélectionnez min(rowid) à partir des noms b où b.nom=un.nom et b.âge=a.âge ); ligne supprimée. SQL > sélectionnez * parmi les noms ; NAMEAGE ---------------------------------- ---------- Alan50 Carrie51 Tom52 lignes sélectionnées. SQL > s`engager; Validation terminée.

Mises en garde

  • Faites une sauvegarde de la table sous votre propre identifiant que vous pouvez utiliser pour montrer comment était la situation avant la suppression (au cas où des questions seraient posées).
SQL > créer une table alan.names_backup as select *from names; Tableau créé.

Оцените, пожалуйста статью