【发布时间】:2019-06-17 21:10:35
【问题描述】:
我有一个包含 4 列的表,其中一列 (id) 的数据类型为 jsonb。我需要在此列中对值进行排序。 样本数据:
name age zip id
----------------------------------------------------------------
abc 25 11111 ["2722", "2855", "3583", "2722", "2855"]
SELECT (t2.id ->> 'x')::numeric
FROM table t2
我试图获取排序后的值,然后在内部查询中使用它,但上面的查询返回 null。
我希望结果显示为:
name age zip id
----------------------------------------------------------------
abc 25 11111 ["2722", "2722", "2855", "2855","3583"]
【问题讨论】:
-
您的 JSON 值不包含名为
'x'的键(它不包含任何顶级键),因此显然id ->> 'x'返回 null。想做的事,不容易做到。您需要取消嵌套数组,然后在将其聚合回来时对其进行排序。
标签: arrays json postgresql