1)"."/> 1)".">

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

Comment interroger les champs en double dans Oracle

WBOY
WBOYoriginal
2022-01-21 11:41:338056parcourir

Dans Oracle, vous pouvez utiliser la fonction count() pour interroger des champs répétés. La syntaxe est "sélectionner * à partir du nom de la table où le champ est dans (sélectionner le champ dans le nom de la table, grouper par champ ayant le nombre (champ) > 1)".

Comment interroger les champs en double dans Oracle

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

Comment interroger les champs en double dans Oracle

1. Recherchez 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. Supprimez les enregistrements en double redondants dans la table. basé sur un seul champ (userCode) userCode), 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. champs) dans la table, ne laissant que l'enregistrement 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 l'enregistrement 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 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
Article précédent:A quoi sert et dans OracleArticle suivant:A quoi sert et dans Oracle