Tengo una tabla que contiene un campo de cadenas separadas por comas:División de una separada por comas de campo en PostgreSQL y haciendo un UNION ALL en todas las tablas resultantes
ID | fruits
-----------
1 | cherry,apple,grape
2 | apple,orange,peach
Quiero crear una versión normalizada de la mesa, así:
ID | fruits
-----------
1 | cherry
1 | apple
1 | grape
2 | apple
2 | orange
2 | peach
la documentación de PostgreSQL 8.4 describe una función regexp_split_to_table que puede convertir a una sola tabla:
SELECT foo
FROM regexp_split_to_table('the quick brown fox jumped over the lazy dog',E'\\s+') AS
foo;
que le da esto:
foo
--------
the
quick
brown
fox
jumped
over
the
lazy
dog
(9 rows)
Pero eso es sólo para un solo campo. Lo que quiero hacer es aplicar UNION tipo a todas las tablas generadas al dividir cada campo. Gracias.
gracias - regexp_split_to_table (fruits, E ',') AS fruit_split –
me puede ayudar con http://stackoverflow.com/questions/40005974/convert-comma-seperated-db-items-to-isolated-rows – Learner
probé SELECT CATEGORI.ID, regexp_split_to_table (CATEGORI.CATEGORY, E ',') COMO split_fruits FROM CATEGORI; – Learner