我需要将jsonb列中的某个元素转换为数组我有什么:
{"a": { "b": "2022-11-03", "c": "321321", "d": "213321" } }
我需要:`
{"a": [ { "b": "2022-11-03", "c": "321321", "d": "213321" } ] }
fsi0uk1n1#
您可以使用jsonb_set()来执行以下操作:
jsonb_set()
SELECT jsonb_set(the_column, '{a}', jsonb_build_array(the_column -> 'a')) FROM the_table
6yt4nkrj2#
请使用**“json_agg”**函数。
select json_agg(DATA) from table_json
示例:db<>fiddle
cidc1ykv3#
使用这里的函数JSON functions和SQL/JSON路径语言。使用路径语言分解原始对象,然后jsonb_build_object以新的形式重建它。
SELECT jsonb_build_object( (jsonb_path_query_array('{"a": {"b": "2022-11-03","c": "321321","d": "213321"}}', '$.keyvalue()') -> 0 -> 'key') ->> 0, (jsonb_path_query_array('{"a": {"b": "2022-11-03","c": "321321","d": "213321"}}', '$.keyvalue()') -> 0 -> 'value' || '[]'::jsonb)); jsonb_build_object ------------------------------------------------------------ {"a": [{"b": "2022-11-03", "c": "321321", "d": "213321"}]}
3条答案
按热度按时间fsi0uk1n1#
您可以使用
jsonb_set()
来执行以下操作:6yt4nkrj2#
请使用**“json_agg”**函数。
示例:db<>fiddle
cidc1ykv3#
使用这里的函数JSON functions和SQL/JSON路径语言。使用路径语言分解原始对象,然后jsonb_build_object以新的形式重建它。