PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да разделя ред на много редове в postgresql

Можете да използвате regexp_split_to_table с отрицателен поглед напред за повредени;

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 за тестване с .

РЕДАКТИРАНЕ:За вашите нови примери регулярният израз трябваше да бъде променен малко;

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

Още един 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. Заявката на SQLAlchemy показва грешка Не може да присъедини таблица/избираеми „работни потоци“ към себе си

  2. Създаване на релационни връзки в PostgreSQL чрез pgAdmin

  3. Разделете върнатия от функцията запис на множество колони

  4. 'удостоверяването с парола не бе успешно за потребител postgres'

  5. Събирайте рекурсивни JSON ключове в Postgres