sql >> Base de Datos >  >> RDS >> PostgreSQL

Cómo dividir una cadena en PostgreSQL

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 .