sql >> Database >  >> RDS >> PostgreSQL

Postgres gesplitste string met dubbele aanhalingstekens naar meerdere rijen?

De location string lijkt op een tekstarray. Converteer het naar text[] en 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)

Of nog eenvoudiger, cast de string naar jsonb en gebruik 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. NLS_CHARSET_ID() Functie in Oracle

  2. Opschonen bij het opslaan van geserialiseerde array

  3. InnoDB:dubbele indixen gevonden - is dit erg?

  4. Symfony:Basistabel of weergave bestaat al:1050 Tabel 'migration_versions' bestaat al