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

Jak podzielić wiersz na wiele wierszy w postgresql

Możesz użyć regexp_split_to_table z negatywnym wyprzedzeniem za uszkodzenie;

SELECT "ID", regexp_split_to_table("Cars", '((, (?!damaged))| and )') "Cars" 
FROM mytable;

 ID |      Cars
----+-----------------
  1 | opel
  1 | honda
  1 | land rover
  2 | ford
  2 | porshe, damaged
  3 | volkswagen
  4 | opel
  4 | seat, damaged
(8 rows)

SQLfiddle do testowania .

EDYCJA:W przypadku nowych przykładów wyrażenie regularne musiało zostać nieco zmodyfikowane;

SELECT "ID", regexp_split_to_table("Cars", '(([,;] (?!damaged))|[,;]? and )') "Cars" 
FROM mytable;

Kolejny SQLfiddle .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hibernacja nie może automatycznie utworzyć schematu na postgresie Heroku

  2. różnica między localhost i postgres dla hosta w docker

  3. wybierz/wyświetl ostatnio wstawiony identyfikator seryjny w postgresie

  4. Jak dokładnie wyczyścić i ponownie zainstalować postgresql na ubuntu?

  5. Zapytanie SQL, aby uzyskać wszystkie wartości, jakie może mieć wyliczenie