sql >> データベース >  >> RDS >> PostgreSQL

複数の行への二重引用符付きのPostgres分割文字列?

    location 文字列はテキスト配列に似ています。 text[]に変換します とアンネスト:

    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<>フィドル。




    1. RPostgreSQLを使用した特定のスキーマへの書き込み

    2. mysqlテーブル構造の提案?

    3. 変更されたプレオーダーツリートラバーサルデータを配列に取得する

    4. SQLにデータを追加するとき、Sphinxの自動更新はインデックスになりますか?