Jeśli wartości rozdzielane są zawsze alfanumeryczne pomiędzy przecinkami, możesz spróbować:
SELECT REGEXP_SUBSTR( <delimied_string>, '[[:alnum:]]{0,},', 1, 7 )
FROM dual;
Aby uzyskać siódmą wartość (łącznie z przecinkiem końcowym). Jeśli jest pusty, pojawia się po prostu końcowy przecinek (który można łatwo usunąć).
Oczywiście, jeśli chcesz mieć inną wartość niż siódmy, zmień wartość czwartego parametru na dowolne n-te wystąpienie, np.
SELECT REGEXP_SUBSTR( <delimied_string>, '[[:alnum:]]{0,},', 1, <nth occurance> )
FROM dual;
EDYCJA:Ponieważ uwielbiam REGEX, jest to rozwiązanie, które usuwa również końcowy przecinek
SELECT REPLACE(
REGEXP_SUBSTR(<delimied_string>, '[[:alnum:]]{0,},', 1, <nth>),
','
)
FROM dual;
mam nadzieję, że to pomoże