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

Postgres разделен низ с двойни кавички на множество редове?

location низът е подобен на текстов масив. Преобразувайте го в text[] и unnest:

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)

Или дори по-просто, прехвърлете низа към jsonb и използвайте 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. PostgreSQL PL/Python:извикване на съхранена процедура във virtualenv

  2. Премахнете ограничението по име в Postgresql

  3. Добавяне на име на таблица към всяка колона в набор от резултати в SQL? (По-специално Postgres)

  4. Таблица с координати на шестоъгълна мрежа, която покрива света

  5. Как да изброя активните връзки на PostgreSQL?