Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment diviser une chaîne séparée par des virgules dans Oracle

basé sur https://blogs.oracle.com/aramamoo/how-to-split-comma-separated-string-and-pass-to-in-clause-of-select-statement :

Tout d'abord, nous allons former une requête, qui divise cette chaîne séparée par des virgules et donne les chaînes individuelles sous forme de lignes.

SQL> select regexp_substr('20.4,12.5,3.5,0.2,0.2','[^,]+', 1, level) from dual
     connect by regexp_substr('20.4,12.5,3.5,0.2,0.2', '[^,]+', 1, level) is not null;


REGEXP_SUBSTR('20.4,1
---------------------
20.4                 
12.5                 
3.5                  
0.2                  
0.2  

La requête ci-dessus parcourt la chaîne séparée par des virgules, recherche la virgule (,) puis divise la chaîne en traitant la virgule comme délimiteur. Il renvoie la chaîne sous forme de ligne, chaque fois qu'elle atteint un délimiteur.