sql >> Base de Datos >  >> RDS >> Oracle

Cómo dividir una cadena separada por comas en Oracle

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

Primero, formaremos una consulta, que divide esta cadena separada por comas y proporciona las cadenas individuales como filas.

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 consulta anterior itera a través de la cadena separada por comas, busca la coma (,) y luego divide la cadena tratando la coma como delimitador. Devuelve la cadena como una fila, cada vez que toca un delimitador.