Maison > base de données > Oracle > le corps du texte

Comment interroger les champs en double dans Oracle

WBOY
Libérer: 2022-01-21 11:41:33
original
7945 Les gens l'ont consulté

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)
Copier après la connexion

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)
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. 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)
Copier après la connexion

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)
Copier après la connexion

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!

É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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!