PostgreSQL:获取jsonb列的所有最外层键

3
假设我们有一个包含仅json对象的jsonb列的大表。如何获取该列中所有最外层键的列表?
例如,如果表格是这样的:
| 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|
1个回答

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() 函数返回 json 对象中最外层的键。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接