PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak podzielić ciąg w PostgreSQL

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 .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Automatyzacja audytów bezpieczeństwa dla PostgreSQL

  2. Jak utworzyć sumę kroczącą okresu rozliczeniowego

  3. Napraw „BŁĄD:każde zapytanie UNION musi mieć taką samą liczbę kolumn” w PostgreSQL

  4. Jak usunąć ustaloną liczbę wierszy z sortowaniem w PostgreSQL?

  5. Niepowodzenie instalacji gem pg, mkmf.rb nie może znaleźć plików nagłówkowych dla ruby ​​(Mac OSX 10.6.5)