Probleem:
Je wilt een string splitsen in PostgreSQL.
Voorbeeld 1:
Je hebt een zin en je wilt deze splitsen door de spatie.
Oplossing 1:
SELECT unnest(
string_to_array('It''s an example sentence.', ' ')
) AS parts;
Het resultaat ziet er als volgt uit:
| onderdelen |
|---|
| Het is |
| een |
| voorbeeld |
| zin. |
Discussie:
Gebruik de functie string_to_array(text, delimiter) om alle delen van de zin als elementen van een array in PostgreSQL te krijgen. De tekst is de tekst die u wilt splitsen en het scheidingsteken is de tekenreeks (hier een spatie) waarmee u de tekst wilt splitsen. Een eenvoudig gebruik van de string_to_array(text, delimiter) functie:
SELECT string_to_array('It''s an example sentence.', ' ') AS parts;
geeft het volgende resultaat:
| onderdelen |
|---|
| {Het is,een,voorbeeld,zin.} |
SELECT unnest(
string_to_array('It''s an example sentence.', ' ')
) AS parts;
Dit levert een kolom op met alle stringdelen, elk in een aparte rij.
Voorbeeld 2:
In de sentences tabel, er zijn enkele zinnen.
| zin |
|---|
| Dit is de eerste zin. |
| En hier is de andere. |
U wilt de zinnen splitsen op het spatieteken.
Oplossing 2:
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Het resultaat ziet er als volgt uit:
| onderdelen |
|---|
| Dit |
| is |
| de |
| eerste |
| zin. |
| En |
| hier is |
| de |
| andere |
| een. |
Discussie:
Gebruik net als in het vorige voorbeeld de functies string_to_array(text, delimiter) en unnest(array). De tekst moet de kolomnaam (zin) zijn, maar het scheidingsteken is nog steeds de spatie (' '). Deze keer gebruikt u de gegevens uit de tabel, dus u moet het FROM-sleutelwoord samen met de tabelnaam gebruiken.
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Voorbeeld 3:
In de sentences tabel, zijn er twee kolommen:id en sentence .
| id | zin |
|---|---|
| 1 | Dit is de eerste zin. |
| 2 | En hier is de andere. |
U wilt de zinnen splitsen op het spatieteken.
Oplossing 3:
SELECT id, unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Het resultaat ziet er als volgt uit:
| id | onderdelen |
|---|---|
| 1 | Dit |
| 1 | is |
| 1 | de |
| 1 | eerste |
| 1 | zin. |
| 2 | En |
| 2 | hier is |
| 2 | de |
| 2 | andere |
| 2 | één. |
Discussie:
Dit voorbeeld lijkt erg op elkaar, maar u wilt ook de id . zien kolom. Om deze kolom te zien, voegt u deze toe aan de SELECT lijst en vergeet niet de komma op te nemen. U ziet de ID van de zin samen met de delen van de zinnen in het resultaat. De eerste zin is bijvoorbeeld opgesplitst in 5 delen en heeft de ID 1 . Daarom is de ID voor alle 5 delen in het resultaat 1 . De volgende zin, met de ID 2 , is ook opgesplitst in 5 delen, en elk van deze delen wordt getoond met id = 2 .