How can I extract values from the json arrays in ranges
column as multiple rows Postgresq?
CREATE TABLE test_table ( id INTEGER, ranges jsonb ); INSERT INTO test_table(id, ranges) VALUES (1,'[{"End": 100, "Start": 1}, {"End": 1000, "Start": 101}]'), (2,'[{"End": 2000, "Start": 1001}, {"End": 2002, "Start": 2001}]') ;
Expected result:
Start | End |
---|---|
1 | 100 |
101 | 1000 |
1001 | 2000 |
2001 | 2002 |
Advertisement
Answer
You can use jsonb_to_recordset
function for this :
SELECT ranges."Start", ranges."End" FROM test_table, jsonb_to_recordset(test_table.ranges) AS ranges("End" int, "Start" int)