Problém:
Chcete rozdělit řetězec v PostgreSQL.
Příklad 1:
Máte větu a chtěli byste ji rozdělit mezerou.
Řešení 1:
SELECT unnest(
string_to_array('It''s an example sentence.', ' ')
) AS parts;
Výsledek vypadá takto:
| části |
|---|
| Je to |
| an |
| příklad |
| věta. |
Diskuse:
Chcete-li získat všechny části věty jako prvky pole v PostgreSQL, použijte funkci string_to_array(text, oddělovač). Text je text, který chcete rozdělit, a oddělovač je řetězec (zde mezera), kterým chcete text rozdělit. Jednoduché použití string_to_array(text, delimiter) funkce:
SELECT string_to_array('It''s an example sentence.', ' ') AS parts;
vrátí následující výsledek:
| části |
|---|
| {Je to, příklad, věta.} |
SELECT unnest(
string_to_array('It''s an example sentence.', ' ')
) AS parts;
Tím vytvoříte sloupec se všemi částmi řetězce, každý v samostatném řádku.
Příklad 2:
Ve sentences tabulky, jsou tam nějaké věty.
| věta |
|---|
| Toto je první věta. |
| A tady je ten druhý. |
Chcete rozdělit věty podle mezery.
Řešení 2:
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Výsledek vypadá takto:
| části |
|---|
| Toto |
| je |
| the |
| první |
| věta. |
| A |
| tady |
| the |
| jiné |
| jedna. |
Diskuse:
Stejně jako v předchozím příkladu použijte funkce string_to_array(text, delimiter) a unnest(array). Text by měl být název sloupce (věta), ale oddělovačem je stále mezera (' '). Tentokrát použijete data z tabulky, takže spolu s názvem tabulky musíte použít klíčové slovo FROM.
SELECT unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Příklad 3:
Ve sentences tabulka má dva sloupce:id a sentence .
| id | věta |
|---|---|
| 1 | Toto je první věta. |
| 2 | A tady je ten druhý. |
Chcete rozdělit věty podle mezery.
Řešení 3:
SELECT id, unnest(string_to_array(sentence, ' ')) AS parts FROM sentences;
Výsledek vypadá takto:
| id | části |
|---|---|
| 1 | Toto |
| 1 | je |
| 1 | |
| 1 | první |
| 1 | věta. |
| 2 | A |
| 2 | tady |
| 2 | |
| 2 | jiné |
| 2 | jeden. |
Diskuse:
Tento příklad je velmi podobný, ale chcete také vidět id sloupec. Chcete-li zobrazit tento sloupec, přidejte jej do SELECT seznam a nezapomeňte uvést čárku. Ve výsledku uvidíte ID věty spolu s částmi vět. Například první věta je rozdělena na 5 částí a má ID 1 . Proto bude ID všech 5 částí ve výsledku 1 . Další věta s ID 2 , je také rozdělena na 5 částí a každá z těchto částí bude zobrazena s id = 2 .