sql >> Databáze >  >> RDS >> PostgreSQL

Jak rozdělit řádek na mnoho řádků v postgresql

Můžete použít regexp_split_to_table s negativním výhledem pro poškozené;

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)

Otestujte SQLfiddle .

EDIT:U vašich nových příkladů musel být regulární výraz trochu upraven;

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

Další SQLfiddle .




  1. Odstraňte duplicitní slova z pole v mysql

  2. Zámky SQL Server – další závory, o kterých byste měli vědět

  3. Pomocí SqlDataAdapter vložit řádek

  4. Tabulkový prostor SYSMGMTDATA je PLNÝ v úložišti správy infrastruktury Grid (MGMTDB)