Рассмотрим эту демонстрацию:
SELECT name
,unnest(a)
,unnest(b)
FROM (VALUES ('foo', '{1,2}'::int[], '{a,b}'::text[])) t(name, a, b)
Результат:
name | unnest | unnest
------+--------+--------
foo | 1 | a
foo | 2 | b
(2 rows)
Или, если у вас есть строки, разделенные запятыми, а не Массивы:
SELECT name
,regexp_split_to_table(a, ',')
,regexp_split_to_table(b, ',')
FROM (VALUES ('foo', '1,2'::text, 'a,b'::text)) t(name, a, b)
То жеРезультат.
Подробнее о unnest()
и regexp_split_to_table()
в руководстве.