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

Postgres tách chuỗi với dấu ngoặc kép thành nhiều hàng?

Vị trí location chuỗi tương tự như một mảng văn bản. Chuyển nó thành text[] và không trung thực:

with my_data(id, location) as (
values 
    (1, '["Humboldt, TN","Medina, TN","Milan, TN"]')
)

select id, unnest(format('{%s}', trim(location, '[]'))::text[]) as location
from my_data

 id |   location   
----+--------------
  1 | Humboldt, TN
  1 | Medina, TN
  1 | Milan, TN
(3 rows)

Hoặc đơn giản hơn, truyền chuỗi thành jsonb và sử dụng jsonb_array_elements_text() :

with my_data(id, location) as (
values 
    (1, '["Humboldt, TN","Medina, TN","Milan, TN"]')
)

select id, jsonb_array_elements_text(location::jsonb) as location
from my_data

Db <> fiddle.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hệ thống tệp Linux và điểm chuẩn điểm kiểm tra PostgreSQL

  2. cập nhật truy vấn với phép nối trên hai bảng

  3. Cách lấy dữ liệu từ Json sang nhiều cột PostgreSQL

  4. Thay thế các ký tự unicode trong PostgreSQL

  5. Thứ tự xử lý lôgic hoặc tiêu chuẩn SQL trong mệnh đề WHERE