Problema:
Vuoi dividere una stringa in PostgreSQL.
Esempio 1:
Hai una frase e vorresti dividerla per il carattere spazio.
Soluzione 1:
SELECT unnest( string_to_array('It''s an example sentence.', ' ') ) AS parts;
Il risultato è simile al seguente:
parti |
---|
È |
un |
esempio |
frase. |
Discussione:
Per ottenere tutte le parti della frase come elementi di un array in PostgreSQL, usa la funzione string_to_array(text, delimiter). Il testo è il testo che desideri dividere e il delimitatore è la stringa (qui, uno spazio) in base alla quale desideri dividere il testo. Un semplice utilizzo di string_to_array(text, delimiter)
funzione:
SELECT string_to_array('It''s an example sentence.', ' ') AS parts;
restituirà il seguente risultato:
parti |
---|
{È,un,esempio,frase.} |
SELECT unnest( string_to_array('It''s an example sentence.', ' ') ) AS parts;
Questo produrrà una colonna con tutte le parti della stringa, ciascuna in una riga separata.
Esempio 2:
Nelle sentences
tabella, ci sono alcune frasi.
frase |
---|
Questa è la prima frase. |
Ed ecco l'altro. |
Vuoi dividere le frasi per il carattere spazio.
Soluzione 2:
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Il risultato è simile al seguente:
parti |
---|
Questo |
è |
il |
prima |
frase. |
E |
ecco |
il |
altro |
uno. |
Discussione:
Proprio come nell'esempio precedente, utilizzare le funzioni string_to_array(text, delimitatore) e unnest(array). Il testo dovrebbe essere il nome della colonna (frase), ma il delimitatore è sempre lo spazio (' '). Questa volta, utilizzi i dati della tabella, quindi devi utilizzare la parola chiave FROM insieme al nome della tabella.
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Esempio 3:
Nelle sentences
tabella, ci sono due colonne:id
e sentence
.
id | frase |
---|---|
1 | Questa è la prima frase. |
2 | Ed ecco l'altro. |
Vuoi dividere le frasi per il carattere spazio.
Soluzione 3:
SELECT id, unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Il risultato è simile al seguente:
id | parti |
---|---|
1 | Questo |
1 | è |
1 | il |
1 | prima |
1 | frase. |
2 | E |
2 | ecco |
2 | il |
2 | altro |
2 | uno. |
Discussione:
Questo esempio è molto simile, ma vuoi anche vedere l'id
colonna. Per vedere questa colonna, aggiungila a SELECT
list e ricordati di includere la virgola. Vedrai l'ID della frase insieme alle parti delle frasi nel risultato. Ad esempio, la prima frase è divisa in 5 parti e ha l'ID 1
. Quindi, l'ID di tutte e 5 le parti nel risultato sarà 1
. La frase successiva, con l'ID 2
, è anche diviso in 5 parti e ciascuna di queste parti verrà mostrata con id = 2
.