By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
CREATE TABLE
INSERT 0 3
| id | data |
|---|---|
| 1 | {"hi": "mom", "age": 43, "bar": true, "nested1": {"foo": 10.5, "nested2": {"zoo": "deep"}}} |
| 2 | {"bar": false, "nested1": {"foo": -0.5, "nested2": {"zoo": "none"}}} |
| 3 | {"age": 41, "bye": "dad"} |
SELECT 3
| col_name | col_type |
|---|---|
| hi | string |
| age | number |
| bar | boolean |
| nested1 | object |
| bar | boolean |
| nested1 | object |
| age | number |
| bye | string |
SELECT 8
| col_name | col_type |
|---|---|
| age | number |
| bar | boolean |
| bye | string |
| hi | string |
| nested1 | object |
| nested1_foo | number |
| nested1_nested2 | object |
| nested1_nested2_zoo | string |
SELECT 8
| sql |
|---|
| CREATE TABLE newtable AS SELECT id, (data->>'age')::int AS data_age, (data->>'bar')::boolean AS data_bar, (data->>'bye')::text AS data_bye, (data->>'hi')::text AS data_hi, (data->'nested1'->>'foo')::int AS data_nested1_foo, (data->'nested1'->'nested2'->>'zoo')::text AS data_nested1_nested2_zoo FROM mytable |
SELECT 1
SELECT 3
| id | data_age | data_bar | data_bye | data_hi | data_nested1_foo | data_nested1_nested2_zoo |
|---|---|---|---|---|---|---|
| 1 | 43 | t | null | mom | 10.5 | deep |
| 2 | null | f | null | null | -0.5 | none |
| 3 | 41 | null | dad | null | null | null |
SELECT 3