Использование with ordinality.
Вы должны вызвать функцию в предложении from
, чтобы сделать это:
with my_process(data) as (
values
('{"Steps": ["first", "second"]}'::jsonb)
)
select value as step, ordinality- 1 as index
from my_process
cross join jsonb_array_elements(data->'Steps') with ordinality
step | index
----------+-------
"first" | 0
"second" | 1
(2 rows)
Прочтите в документации ( 7.2.1.4. Табличные функции ):
Если указано предложение WITH ORDINALITY, в столбцы результата функции будет добавлен дополнительный столбец типа bigint. В этом столбце нумеруются строки набора результатов функции, начиная с 1.