如何将 jsonb 数字数组映射到 jsonb 字符串数组?
How to map a jsonb array of numbers to a jsonb array of strings?
我有一个数字或字符串的 jsonb 数组,例如'[1, "2", 3]'::jsonb
我想将所有值映射到字符串,这样我就可以得到 '["1", "2", "3"]'::jsonb
我试过这个:
select jsonb_agg(jsonb_array_elements_text('[1, 2, 3]'::jsonb))
但是它在抱怨
LINE 1: select jsonb_agg(jsonb_array_elements_text('[1, 2, 3]'::json...
^
HINT: You might be able to move the set-returning function into a LATERAL FROM item.
按照错误消息的建议进行操作:使用设置返回函数 jsonb_array_elements_text()
就像 table:
select jsonb_agg(element)
from jsonb_array_elements_text('[1, 2, 3]'::jsonb) as x(element);
我有一个数字或字符串的 jsonb 数组,例如'[1, "2", 3]'::jsonb
我想将所有值映射到字符串,这样我就可以得到 '["1", "2", "3"]'::jsonb
我试过这个:
select jsonb_agg(jsonb_array_elements_text('[1, 2, 3]'::jsonb))
但是它在抱怨
LINE 1: select jsonb_agg(jsonb_array_elements_text('[1, 2, 3]'::json...
^
HINT: You might be able to move the set-returning function into a LATERAL FROM item.
按照错误消息的建议进行操作:使用设置返回函数 jsonb_array_elements_text()
就像 table:
select jsonb_agg(element)
from jsonb_array_elements_text('[1, 2, 3]'::jsonb) as x(element);