是否有办法查询jsonb数组项目与他们的顺序在postgresql枚举?
例如:
SELECT * FROM jsonb_array_elements('[1,2,[3,4]]'::jsonb)
结果:
value
1
2
[3, 4]
我想要这些结果:
key value
0 1
1 2
2 [3, 4]
因为我认为我可以安全地假设任何未显式排序的select语句都是无序的,所以我认为简单的ROW_NUMBER()在这种情况下不会可靠地工作。
操作符with ordinality
将生成数组索引值:
SELECT idx, value
FROM jsonb_array_elements('[1,2,[3,4]]'::jsonb) with ordinality as t(value, idx)
order by idx