1"."/> 1".">

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

Comment interroger des données en double dans Oracle

WBOY
WBOYoriginal
2022-02-28 11:13:5239537parcourir

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)

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)

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)

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)

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)

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!

Déclaration:
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