Problem:
Chcesz podzielić ciąg w PostgreSQL.
Przykład 1:
Masz zdanie i chcesz je podzielić przez spację.
Rozwiązanie 1:
SELECT unnest(
string_to_array('It''s an example sentence.', ' ')
) AS parts;
Wynik wygląda tak:
| części |
|---|
| To jest |
| i |
| przykład |
| zdanie. |
Dyskusja:
Aby uzyskać wszystkie części zdania jako elementy tablicy w PostgreSQL, użyj funkcji string_to_array(text, delimiter). Tekst to tekst, który chcesz podzielić, a ogranicznik to ciąg (tutaj spacja), według którego chcesz podzielić tekst. Proste użycie string_to_array(text, delimiter) funkcja:
SELECT string_to_array('It''s an example sentence.', ' ') AS parts;
zwróci następujący wynik:
| części |
|---|
| {To,przykład,zdanie.} |
SELECT unnest(
string_to_array('It''s an example sentence.', ' ')
) AS parts;
Spowoduje to utworzenie kolumny ze wszystkimi częściami ciągu, każda w osobnym wierszu.
Przykład 2:
W sentences tabeli, jest kilka zdań.
| zdanie |
|---|
| To jest pierwsze zdanie. |
| A oto druga. |
Chcesz podzielić zdania znakiem spacji.
Rozwiązanie 2:
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Wynik wygląda tak:
| części |
|---|
| To |
| jest |
| pierwszy |
| zdanie. |
| I |
| oto |
| inne |
| jeden. |
Dyskusja:
Podobnie jak w poprzednim przykładzie, użyj funkcji string_to_array(text, delimiter) i unnest(array). Tekst powinien być nazwą kolumny (zdaniem), ale separatorem nadal jest spacja (' '). Tym razem używasz danych z tabeli, więc musisz użyć słowa kluczowego FROM wraz z nazwą tabeli.
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Przykład 3:
W sentences tabela, są dwie kolumny:id i sentence .
| id | zdanie |
|---|---|
| 1 | To jest pierwsze zdanie. |
| 2 | A oto druga. |
Chcesz podzielić zdania znakiem spacji.
Rozwiązanie 3:
SELECT id, unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Wynik wygląda tak:
| id | części |
|---|---|
| 1 | To |
| 1 | jest |
| 1 | |
| 1 | pierwszy |
| 1 | zdanie. |
| 2 | I |
| 2 | oto |
| 2 | |
| 2 | inne |
| 2 | jeden. |
Dyskusja:
Ten przykład jest bardzo podobny, ale chcesz również zobaczyć id kolumna. Aby zobaczyć tę kolumnę, po prostu dodaj ją do SELECT listę i pamiętaj, aby wstawić przecinek. Zobaczysz identyfikator zdania wraz z częściami zdań w wyniku. Na przykład pierwsze zdanie jest podzielone na 5 części i ma identyfikator 1 . Dlatego identyfikatorem wszystkich 5 części w wyniku będzie 1 . Następne zdanie o identyfikatorze 2 , jest również podzielony na 5 części, a każda z tych części będzie pokazana z id = 2 .