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)