sql - postgres 在 JSON 数组中提取多个值
问题描述
我有一个表,其中一列是 JSON 数组。每个键都有多个值。
所以我使用这个查询来选择 JSON
select x.cola eventid, x.colb
from special_event_conflicts t
cross join lateral json_each(t.eventid) as x(cola, colb)
产生
"525947";"{"f1":133,"f2":2428,"f3":"MULTILINESTRING((1013339.30779158 180228.160778359,1013395.51179424 180119.844273224))"}"
我想要的是能够将 f1,f2,f3 值选择到自己的列中
解决方案
最简单的方法是使用->>
运算符:
SELECT
x.event_id,
x.colb ->> 'f1' as f1,
x.colb ->> 'f2' as f2,
x.colb ->> 'f3' as f3
FROM <YOUR QUERY>
推荐阅读
- php - Laravel 根据第一行子过滤父行
- javascript - 在 React Native 中使用 firebase 存储上传图像时文件损坏
- java - 通过socket android发送大文件
- java - 我如何使加密原语变得贪得无厌
- powerbi - 具有下一行值的 Power BI 自定义列
- django - 无论如何要停止在 django 的散点图中多次打印特定列
- r - R用变量值命名图
- logstash - 在 Databricks 中将日志从 Spark 发送到 Logstash 时出错
- java - 如何在一个进程中启动 Windows 中的多个文件?
- docker - 设置 docker 卷时 docker.sock 文件不存在