Возврат всех элементов скаляра jsonb в postgresql - PullRequest
0 голосов
/ 06 июля 2019

У меня есть столбец jsonb со скалярными значениями. Я пытаюсь вернуть все элементы этого скалярного значения в виде отдельных строк. Моя версия postgres - 9.6. Например:

SELECT jsonb ->> 2
FROM (
    SELECT '["mango", "aaple", "banana", "orange", "berry"]'::jsonb
) s

Приведенный выше sql возвращает banana, как и ожидалось, поскольку это 2-й элемент (jsonb ->>2) в скалярном значении. Как вернуть все элементы в виде отдельных строк, как показано ниже?

mango
aaple
banana
orange
berry

1 Ответ

1 голос
/ 06 июля 2019

вы можете использовать функцию jsonb_array_elements:

SELECT jsonb_array_elements(jsonb)::text
FROM (
SELECT '["mango", "aaple", "banana", "orange", "berry"]'::jsonb
) s


result: 
"mango"
"aaple"
"banana"
"orange"
"berry"
...