在 postgresql 中返回 jsonb 标量的所有元素
Returning all elements of a jsonb scalar in postgresql
我有一个包含标量值的 jsonb 列。我试图 return 该标量值的所有元素作为单独的行。我的 postgres 版本是 9.6。例如:
SELECT jsonb ->> 2
FROM (
SELECT '["mango", "aaple", "banana", "orange", "berry"]'::jsonb
) s
上面的 sql returns banana
正如预期的那样,因为它是标量值中的第二项 (jsonb ->>2
)。我如何 return 将所有项目作为单独的行,如下所示?
mango
aaple
banana
orange
berry
您可以使用函数 jsonb_array_elements :
SELECT jsonb_array_elements(jsonb)::text
FROM (
SELECT '["mango", "aaple", "banana", "orange", "berry"]'::jsonb
) s
result:
"mango"
"aaple"
"banana"
"orange"
"berry"
我有一个包含标量值的 jsonb 列。我试图 return 该标量值的所有元素作为单独的行。我的 postgres 版本是 9.6。例如:
SELECT jsonb ->> 2
FROM (
SELECT '["mango", "aaple", "banana", "orange", "berry"]'::jsonb
) s
上面的 sql returns banana
正如预期的那样,因为它是标量值中的第二项 (jsonb ->>2
)。我如何 return 将所有项目作为单独的行,如下所示?
mango
aaple
banana
orange
berry
您可以使用函数 jsonb_array_elements :
SELECT jsonb_array_elements(jsonb)::text
FROM (
SELECT '["mango", "aaple", "banana", "orange", "berry"]'::jsonb
) s
result:
"mango"
"aaple"
"banana"
"orange"
"berry"