You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jsonb_to_recordset转换JSONB数组为记录集时是否始终保持原顺序?

关于jsonb_to_recordset是否保持JSON数组元素顺序的解答

嘿,这个问题问到点子上了——是的,jsonb_to_recordset 会严格按照原JSONB数组的元素顺序返回记录集。

PostgreSQL里的jsonb类型会完整保留JSON数组的元素顺序信息,而jsonb_to_recordset在解析数组生成记录集时,完全遵循这个原始顺序来生成每一行记录。毕竟JSON数组本身就是有序结构(和JSON对象的无序键不同),PostgreSQL在处理这类转换时不会打乱这个顺序。

举个实际的例子验证一下:

SELECT * 
FROM jsonb_to_recordset('[{"id":1,"name":"Alice"},{"id":2,"name":"Bob"},{"id":3,"name":"Charlie"}]'::jsonb) 
AS x(id int, name text);

执行这段查询后,返回的记录顺序会是Alice、Bob、Charlie,和原数组里的元素顺序完全一致。

不过要提个小注意:如果后续你对返回的记录集手动加了ORDER BY这类排序操作,那顺序肯定会被改变;但如果没有额外的排序干预,jsonb_to_recordset的输出顺序绝对和原JSON数组保持一致。

内容的提问来源于stack exchange,提问作者mrSpear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:19:54