En ändring av phonetic_mans svar som tillåter NULL-element i listan. Regex-formatet för '[^,]+'
för att tolka avgränsade listor hanterar inte NULL-listelement och kommer att returnera ett felaktigt värde om ett sådant finns och därför bör användningen undvikas. Ändra originalet genom att ta bort siffran 2 till exempel och se resultatet. Du kommer att få en "3" i det andra elementets position! Här är ett sätt som hanterar NULL och returnerar det korrekta värdet för elementet:
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;
Se här för mer info och bevis:https://stackoverflow.com/a/31464699/2543416