2016-11-01 5 views
0

に私はテーブルtable_jsonに次のレコードを持っている:のPostgreSQL 9.5:表示JSONデータテーブル

id  doc 
    --------------------------------------- 
    1 
      {"name":"Shaw", 
       "address":{"line1":"L1", 
          "line2":"L2", 
          "zipcode":"12345" 
          } 
      } 

注:列docはタイプjsonです。今私は の形式にjsonデータを印刷したいと思います。

期待出力

id name address 
    -------------------------- 
    1 Shaw L1,L2,12345 
+1

あなたがhttps://www.postgresql.org/docs/9.5/static/functions-を通過することができますjson.htmlを使用し、それに応じて関数を使用します。 – Pragun

答えて

3

使用json_each_text()横で参加:

with a_table (id, doc) as (
values 
(1, '{ 
    "name": "Shaw", 
    "address":{ 
     "line1":"L1", 
     "line2":"L2", 
     "zipcode":"12345" 
     } 
    }'::json) 
) 
select 
    id, 
    doc->>'name' as name, 
    string_agg(value, ',') as address 
from a_table, 
lateral json_each_text(doc->'address') 
group by 1, 2; 

id | name | address 
----+------+------------- 
    1 | Shaw | L1,L2,12345 
(1 row) 
関連する問題