Предполагая, что вы заранее знаете максимальное количество элементов в списке с разделителями, вы можете сделать это с помощью таблицы чисел и split_part()
:
select t.name, split_part(t.order, ',', n.n) val
from (
select 1 n
union all select 2
union all select 3
) n
inner join mytable t
on n.n <= regexp_count(t.order, ',') + 1
вы можете расширить производную таблицу n
с помощью больше чисел по мере необходимости. Также возможно использовать row_number()
против большой таблицы для создания таблицы чисел.