У меня есть таблица, содержащая поле разделенных запятыми строк:
ID | fruits
-----------
1 | cherry,apple,grape
2 | apple,orange,peach
Я хочу создать нормализованную версию таблицы, например:
ID | fruits
-----------
1 | cherry
1 | apple
1 | grape
2 | apple
2 | orange
2 | peach
В документации postgresql 8.4 описывается функция regexp_split_to_table, которая может преобразовывать одну таблицу:
SELECT foo
FROM regexp_split_to_table('the quick brown fox jumped over the lazy dog',E'\\s+') AS
foo;
который дает вам следующее:
foo
--------
the
quick
brown
fox
jumped
over
the
lazy
dog
(9 rows)
Но это только для одного поля. То, что я хочу сделать, - это какой-то UNION, применяемый ко всем таблицам, генерируемым разбиением каждого поля. Спасибо.