Jeśli nie potrzebujesz wyrażenia regularnego, bardziej wydajne jest użycie string_to_array()
zamiast regexp_split_to_table()
. Aby uzyskać indeks tablicy, użyj with ordinality
select t.id,
x.idx,
x.word
from the_table t,
unnest(string_to_array(string_data, ';')) with ordinality as x(word, idx)
order by t.id, x.idx;