sql >> Database >  >> RDS >> PostgreSQL

Een string splitsen in PostgreSQL

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 .


  1. PRAGMA table_list in SQLite

  2. Hoe RADIANS() werkt in MariaDB

  3. De FGCB_ADD_REMOVE-vergrendeling

  4. ODBC-gegevens gebruiken in RapidMiner