Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como dividir uma string separada por vírgulas no Oracle


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

Primeiro, formaremos uma consulta, que divide essa string separada por vírgulas e fornece as strings individuais como linhas.
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  

A consulta acima percorre a string separada por vírgula, procura a vírgula (,) e então divide a string tratando a vírgula como delimitador. Ele retorna a string como uma linha, sempre que atinge um delimitador.