











Supprimer les données en double dans oracle
Teneur
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

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.

2. Rechercher dans une colonne `Noms`. Dans le cas d`une colonne `Noms`, remplissez-la pour `nom_colonne`.

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

1. Sélectionnez « des noms à partir des noms ». Après `SQL` (Standard Query Language), tapez `select name from names`.

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`.

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.

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

1. Sélectionnez l`adresse de ligne (ID de ligne) que vous souhaitez supprimer. Après `SQL` tapez `select rowid, name from names;`.

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.

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

1. Sélectionnez les lignes. Après `SQL` tapez `select *from names;` pour voir les lignes choisies.

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.

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éé.
Articles sur le sujet "Supprimer les données en double dans oracle"
Оцените, пожалуйста статью
Similaire
Populaire