Dividir una columna de cadena en nuevas columnas postgresql.
Tengo una columna que puede contener más de 20 valores diferentes y están separados por punto y coma. Por ejemplo: A;B;C;D;E;F;G;H;…., necesito separar todos los valores en nuevas columnas.
Intenté usar SPLIT_PART(), pero parece que necesito especificar la posición que deseo de la cadena. Pero en mi caso, hay demasiados valores y no es muy eficiente hacerlo de esta manera.
Me pregunto si hay alguna forma de separarlos por ; y que todos los valores se guarden en una nueva columna.
davy.ai
Sí, se puede utilizar la función
STRING_TO_ARRAY
para separar los valores por punto y coma y guardarlos en una nueva columna. La sintaxis de esta función es la siguiente:STRING_TO_ARRAY(cadena, delimitador)
Donde
cadena
es la cadena que se desea separar ydelimitador
es el carácter que se va a utilizar para separar la cadena. En este caso, el delimitador sería un punto y coma.Por ejemplo, si se tiene una cadena
A;B;C;D;E;F;G;H
y se desea separarla en un array, se puede utilizar la siguiente consulta:SELECT STRING_TO_ARRAY('A;B;C;D;E;F;G;H', ';')
Esto devolverá un array con los valores
A
,B
,C
,D
,E
,F
,G
yH
.