Postgresql:获取jsonb列的所有最外键
Postgresql: Get all the outermost keys of a jsonb column
假设我们有一个很大的 table 和一个 jsonb 列,其中只有 json 个对象。如何获取列中所有最外层键的列表?
即如果 table 是这样的
| id | data_column |
| ---| -----------------------------------------------------|
| 1 | {"key_1": "some_value", "key_2": "some_value"} |
| 2 | {"key_3": "some_value", "key_4": "some_value"} |
| 3 | {"key_1": "some_value", "key_4": "some_object"} |
.....
是否有可能得到这样的结果
| keys |
| -----|
| key_1|
| key_2|
| key_3|
| key_4|
是:
SELECT jsonb_object_keys(data_column) FROM test_table;
或者,如果您想删除重复项,请排序并将键作为列名:
SELECT DISTINCT jsonb_object_keys(data_column) AS keys FROM test_table ORDER by keys;
jsonb_object_keys() / json_object_keys() returns 来自 json 对象的最外键。
假设我们有一个很大的 table 和一个 jsonb 列,其中只有 json 个对象。如何获取列中所有最外层键的列表?
即如果 table 是这样的
| id | data_column |
| ---| -----------------------------------------------------|
| 1 | {"key_1": "some_value", "key_2": "some_value"} |
| 2 | {"key_3": "some_value", "key_4": "some_value"} |
| 3 | {"key_1": "some_value", "key_4": "some_object"} |
.....
是否有可能得到这样的结果
| keys |
| -----|
| key_1|
| key_2|
| key_3|
| key_4|
是:
SELECT jsonb_object_keys(data_column) FROM test_table;
或者,如果您想删除重复项,请排序并将键作为列名:
SELECT DISTINCT jsonb_object_keys(data_column) AS keys FROM test_table ORDER by keys;
jsonb_object_keys() / json_object_keys() returns 来自 json 对象的最外键。