sql - PosgresQL 中的数组处理中的数组
问题描述
我根据以下查询从 PostgresQL 10.5 的 JsonB 数据类型中提取了数组。它提供数组数据,但作为文本(参见列标题)。
具有 JSONB 列的父数据表
从 JSONB 列中提取数组文本的代码
SELECT "Path" -> 'points' ->> 'coordinates' AS ca from public."Route"
参考下面的快照,它在输出中给出了文本列
我需要以这样的方式处理这个表,我可以[[x1,y1],[x2,y2],...]
通过 SQL 调用 x & y 坐标(数组)
解决方案
感谢@Sticky 的指导……我通过博客获得了完整的解决方案
SELECT array_agg(t)
FROM (
SELECT REPLACE(REPLACE(REPLACE(UNNEST(a), '[', ''), ']', ''),' ','')::decimal AS t, ROW_NUMBER() OVER (ORDER BY 1) AS r
FROM (
SELECT STRING_TO_ARRAY(jsonb_array_elements_text("Path"->'points'->'coordinates'), ',') a
FROM "Route"
) t
) t
Group by r
order by r;
推荐阅读
- javascript - 如何在不更改 var 参数的情况下选择所有复选框
- android - 如何制作充电电池模拟器(Android)?
- javascript - 在 js 按钮中附加 css 内联样式以进行悬停
- ansible - 阅读 ansible 字典以创建 ansible 事实
- python - 需要帮助理解python中的类继承
- salesforce - kafka salesforce-bulk-source-connector 是否与 Amazon MSK 一起使用?
- angular - 如何在 ionic 3 中的模板驱动表单中添加验证?
- kotlin - 更好的 RXJava2 也许链接
- excel - 在工作表之间复制和粘贴_目标工作表受密码保护
- jestjs - Create React App 不能正确地模拟 __mocks__ 目录中的模块