Séparer les chaînes séparées par des virgules et passer à la clause IN de l'instruction select dans Oracle
1. Example
Dans certaines situations, vous avez une chaine (String), par exemple :
'KING,JONES,FORD'
Vous voulez le transformer en une instruction Select et recevoir des résultats comme l'illustration ci-dessous :
Avec Oracle > 9, vous pouvez écrire la requête SQL comme ci-dessous :
-- ORACLE > 9.x
Select Regexp_Substr('KING,JONES,FORD'
,'[^,]+'
,1
,Level) Emp_Name
From Dual
Connect By Regexp_Substr('KING,JONES,FORD'
,'[^,]+'
,1
,Level) Is Not Null;
Cherchez les employés nommés dans une chaine séparée par la virgule.
Select * From Employee Emp
Where
Emp.Emp_Name In ('KING','JONES','FORD');
Vous devez combiner deux instructions imbriquées :
Select *
From Employee Emp
Where Emp.Emp_Name In
(Select Regexp_Substr('KING,JONES,FORD'
,'[^,]+'
,1
,Level) Emp_Name
From Dual
Connect By Regexp_Substr('KING,JONES,FORD'
,'[^,]+'
,1
,Level) Is Not Null);
Les résultats de l'exécution de l'instruction :
Tutoriels de base de données Oracle
- Installer PL/SQL Developer sur Windows
- Exemple de base de données Oracle pour l'apprentissage SQL
- Installer Oracle Database 11g sous Windows
- Installer Oracle Database 12c sous Windows
- Installer Oracle Client sur Windows
- Créer Oracle SCOTT Schema
- Exemple de base de données
- La structure de base de données et les caractéristiques du Cloud dans le Oracle 12c
- Importation et exportation de la base de données Oracle
- Des fonctions de traitements de chaines (String) dans Oracle
- Séparer les chaînes séparées par des virgules et passer à la clause IN de l'instruction select dans Oracle
- Requêtes hiérarchiques dans Oracle
- Le Tutoriel de Oracle Database et Synonym
- Le Tutoriel de programmation Oracle PL/SQL
- XML Parser pour Oracle PL/SQL
- Audit de base de données standard dans Oracle
- Création et gestion de Oracle Wallet
Show More