Maison > base de données > Oracle > Comment interroger des données en double dans Oracle

Comment interroger des données en double dans Oracle

WBOY
Libérer: 2022-02-28 11:14:44
original
39597 Les gens l'ont consulté

Dans Oracle, vous pouvez utiliser la fonction count() avec l'instruction de requête select pour interroger des données répétées. La syntaxe est "sélectionner le code utilisateur du groupe d'utilisateurs par code utilisateur ayant count(userCode)> 1".

Comment interroger des données en double dans Oracle

L'environnement d'exploitation de ce tutoriel : système Windows 10, version Oracle 11g, ordinateur Dell G3.

Comment interroger les données en double dans Oracle

1. Rechercher les enregistrements en double redondants dans la table. Les enregistrements en double sont jugés en fonction d'un seul champ (code utilisateur)

select 
    * 
from 
    user
where 
    userCode
in 
    (select  userCode  from  user group by  userCode having count (userCode) > 1)
Copier après la connexion

2. Supprimer les enregistrements en double redondants dans la table. sur la base d'un seul champ (userCode) pour juger, seul l'enregistrement avec le plus petit rowid est laissé

delete from 
    user 
where 
    userCode 
in 
    (select userCode from user group by  userCode having count (peopleId) > 1)
and rowid not in 
    (select min(rowid) from   user group by userCode having count(userCode)>1)
Copier après la connexion

3 Recherchez les enregistrements en double redondants (plusieurs champs) dans la table

select 
    * 
from 
    user a
where 
    (a.userCode,a.userName) 
in  
    (select userCode,userName from user group by userCode,userName having count(*) > 1)
Copier après la connexion

4. ) dans la table, en ne laissant que Il y a des enregistrements avec le plus petit rowid

delete from 
    user a
where
    (a.userCode,a.userName) 
in   
    (select userCode,userName from user group by userCode,userName having count(*) > 1)
and rowid not in 
    (select min(rowid) from user group by userCode,userName having count(*)>1)
Copier après la connexion

5. Les enregistrements en double redondants (plusieurs champs) dans la table de recherche n'incluent pas les enregistrements avec le plus petit rowid

select 
    * 
from 
    user a
where 
    (a.userCode,a.userName)  
in   
    (select userCode,userName from user group by userCode,userName having count(*) > 1)
and rowid not in 
    (select min(rowid) from user group by userCode,userName having count(*)>1)
Copier après la connexion

Tutoriel recommandé : "Oracle Video Tutoriel"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal