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

PostgreSQLでjsonb列の値を複数の列に変換する

    9.4では簡単です(LATERAL結合関数とjsonb関数を使用):

        postgres=# SELECT * 
                      FROM sample, jsonb_to_record(jsonb, true) AS x(a text, b text);
         id |            jsonb             |    date     |  a   |   b    
        ----+------------------------------+-------------+------+--------
          1 | {"a": "a", "b": "b"}         | 2014-01-06  | a    | b
          2 | {"a": "a", "b": "b"}         | 2014-01-06  | a    | b
          3 | {"a": "Ahoj", "b": "Nazdar"} | 2014-01-06  | Ahoj | Nazdar
        (3 rows)
    

    正確な結果:

    postgres=# SELECT id, a, b, date 
                   FROM sample, jsonb_to_record(jsonb, true) AS x(a text, b text);
     id |  a   |   b    |    date    
    ----+------+--------+------------
      1 | a    | b      | 2014-01-06
      2 | a    | b      | 2014-01-06
      3 | Ahoj | Nazdar | 2014-01-06
    (3 rows)
    



    1. ClusterControl1.7を使用したエージェントベースのデータベース監視の紹介

    2. CSVファイルをPostgreSQLにインポートするときに引用符を無視しますか?

    3. ClusterControl 1.5-自動バックアップ検証、バックアップとクラウド統合からスレーブを構築

    4. MySQLとLIKEの%との比較