PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách chia hàng thành nhiều hàng trong postgresql

Bạn có thể sử dụng regexp_split_to_table với một cái nhìn tiêu cực cho bị hư hỏng;

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 để kiểm tra .

CHỈNH SỬA:Đối với các ví dụ mới của bạn, regex phải được tinh chỉnh một chút;

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

SQLfiddle khác .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm sắc nét dữ liệu của bạn với PostgreSQL 11

  2. Thay thế khi mệnh đề IN được đưa vào RẤT NHIỀU giá trị (postgreSQL)

  3. Rails / postgres, 'khóa ngoại' được lưu trữ trong mảng để tạo liên kết 1-nhiều

  4. Chèn nhiều bản ghi với pg-promise

  5. Thêm Postgresql vào ứng dụng Heroku của tôi - vấn đề với các truy vấn lỗi cú pháp?