PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como dividir uma string no PostgreSQL

Problema:


Você deseja dividir uma string no PostgreSQL.

Exemplo 1:


Você tem uma frase e gostaria de dividi-la pelo caractere de espaço.

Solução 1:

SELECT unnest(
  string_to_array('It''s an example sentence.', ' ')
) AS parts;

O resultado fica assim:
partes
É
um
exemplo
frase.

Discussão:


Para obter todas as partes da frase como elementos de um array no PostgreSQL, use a função string_to_array(texto, delimitador). O texto é o texto que você gostaria de dividir, e o delimitador é a string (aqui, um espaço) pela qual você gostaria de dividir o texto. Um uso simples do string_to_array(text, delimiter) função:
SELECT string_to_array('It''s an example sentence.', ' ') AS parts;

retornará o seguinte resultado:
partes
{É,um,exemplo,sentença.}
SELECT unnest(
  string_to_array('It''s an example sentence.', ' ')
) AS parts;

Isso produzirá uma coluna com todas as partes da string, cada uma em uma linha separada.

Exemplo 2:


Nas sentences tabela, há algumas frases.
frase
Esta é a primeira frase.
E aqui está o outro.

Você deseja dividir as frases pelo caractere de espaço.

Solução 2:

SELECT unnest(string_to_array(sentence, ' ')) AS parts
FROM sentences;

O resultado fica assim:
partes
Isto
é
o
primeiro
frase.
E
aqui
o
outro
um.

Discussão:


Assim como no exemplo anterior, use as funções string_to_array(texto, delimitador) e unnest(array). O texto deve ser o nome da coluna (frase), mas o delimitador ainda é o espaço (' '). Desta vez, você usa os dados da tabela, portanto, precisa usar a palavra-chave FROM junto com o nome da tabela.
SELECT unnest(string_to_array(sentence, ' ')) AS parts
FROM sentences;

Exemplo 3:


Nas sentences tabela, existem duas colunas:id e sentence .
id frase
1 Esta é a primeira frase.
2 E aqui está o outro.

Você deseja dividir as frases pelo caractere de espaço.

Solução 3:

SELECT
  id,
  unnest(string_to_array(sentence, ' ')) AS parts
FROM sentences;

O resultado fica assim:
id partes
1 Isso
1 é
1 o
1 primeiro
1 frase.
2 E
2 aqui está
2 o
2 outro
2 um.

Discussão:


Este exemplo é muito semelhante, mas você também deseja ver o id coluna. Para ver esta coluna, basta adicioná-la ao SELECT lista e lembre-se de incluir a vírgula. Você verá o ID da sentença junto com as partes das sentenças no resultado. Por exemplo, a primeira frase é dividida em 5 partes e tem o ID 1 . Portanto, o ID para todas as 5 partes no resultado será 1 . A próxima frase, com o ID 2 , também é dividido em 5 partes, e cada uma dessas partes será mostrada com id = 2 .