Problema:
Quiere dividir una cadena en PostgreSQL.
Ejemplo 1:
Tiene una oración y le gustaría dividirla por el carácter de espacio.
Solución 1:
SELECT unnest( string_to_array('It''s an example sentence.', ' ') ) AS parts;
El resultado se ve así:
partes |
---|
Es |
un |
ejemplo |
frase. |
Discusión:
Para obtener todas las partes de la oración como elementos de una matriz en PostgreSQL, use la función string_to_array(texto, delimitador). El texto es el texto que desea dividir y el delimitador es la cadena (aquí, un espacio) por la que desea dividir el texto. Un uso simple de string_to_array(text, delimiter)
función:
SELECT string_to_array('It''s an example sentence.', ' ') AS parts;
devolverá el siguiente resultado:
partes |
---|
{Es,una,oración,de,ejemplo.} |
SELECT unnest( string_to_array('It''s an example sentence.', ' ') ) AS parts;
Esto producirá una columna con todas las partes de la cadena, cada una en una fila separada.
Ejemplo 2:
En las sentences
mesa, hay algunas frases.
frase |
---|
Esta es la primera oración. |
Y aquí está el otro. |
Desea dividir las oraciones por el carácter de espacio.
Solución 2:
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
El resultado se ve así:
partes |
---|
Esto |
es |
el |
primero |
frase. |
Y |
aquí está |
el |
otro |
uno. |
Discusión:
Al igual que en el ejemplo anterior, use las funciones string_to_array(text, delimiter) y unnest(array). El texto debe ser el nombre de la columna (oración), pero el delimitador sigue siendo el espacio (' '). Esta vez, usa los datos de la tabla, por lo que necesita usar la palabra clave FROM junto con el nombre de la tabla.
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Ejemplo 3:
En las sentences
tabla, hay dos columnas:id
y sentence
.
id | frase |
---|---|
1 | Esta es la primera oración. |
2 | Y aquí está el otro. |
Desea dividir las oraciones por el carácter de espacio.
Solución 3:
SELECT id, unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
El resultado se ve así:
id | partes |
---|---|
1 | Esto |
1 | es |
1 | el |
1 | primero |
1 | frase. |
2 | Y |
2 | aquí está |
2 | el |
2 | otro |
2 | uno. |
Discusión:
Este ejemplo es muy similar, pero también desea ver el id
columna. Para ver esta columna, simplemente agréguela a SELECT
lista y recuerda incluir la coma. Verá el ID de la oración junto con las partes de las oraciones en el resultado. Por ejemplo, la primera oración se divide en 5 partes y tiene el ID 1
. Por lo tanto, la ID de las 5 partes en el resultado será 1
. La siguiente frase, con el ID 2
, también se divide en 5 partes, y cada una de estas partes se mostrará con id = 2
.