Una modifica alla risposta di phonetic_man che consentirà elementi NULL nell'elenco. Il formato regolare di '[^,]+'
per l'analisi di elenchi delimitati non gestisce elementi di elenco NULL e restituirà un valore errato se ne esiste uno e quindi il suo utilizzo dovrebbe essere evitato. Cambia l'originale eliminando ad esempio il numero 2 e guarda i risultati. Otterrai un "3" nella posizione del 2° elemento! Ecco un modo che gestisce il NULL e restituisce il valore corretto per l'elemento:
SELECT TRIM(REGEXP_SUBSTR(str, '(.*?)(,|$)', 1, LEVEL, NULL, 1)) str
FROM ( SELECT '1,,3,4' str FROM dual )
connect by level <= regexp_count(str, ',') + 1;
Vedi qui per ulteriori informazioni e prove:https://stackoverflow.com/a/31464699/2543416