Oracle
 sql >> Database >  >> RDS >> Oracle

Come dividere una stringa separata da virgole in Oracle

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

Per prima cosa, formeremo una query, che divide questa stringa separata da virgole e fornisce le singole stringhe come righe.

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 query precedente scorre la stringa separata da virgole, cerca la virgola (,) e quindi divide la stringa trattando la virgola come delimitatore. Restituisce la stringa come riga, ogni volta che raggiunge un delimitatore.