arrays - 如何从 jsonb 对象数组中提取值?
问题描述
我正在使用 Postgres,我试图获取数组中具有键 statusCode 的所有元素,并将值放入数组中,以便我可以显示它。
"systemStatuses": [
{
"changedBy": "monsjenni557",
"timeStamp": 1554151540.9612856,
"statusCode": "S01",
"statusDescription": "Received"
},
{
"changedBy": "monsjenni557",
"timeStamp": 1554151546.2600567,
"statusCode": "SF02",
"statusDescription": "Request Validation Fail"
}
]
结果应该是["S01","SF02"]
解决方案
您可以展开然后聚合回 jsonb 字段。该WITH
部分仅用于示例目的。
WITH exampleData AS (
SELECT '[
{
"changedBy": "monsjenni557",
"timeStamp": 1554151540.9612856,
"statusCode": "S01",
"statusDescription": "Received"
},
{
"changedBy": "monsjenni557",
"timeStamp": 1554151546.2600567,
"statusCode": "SF02",
"statusDescription": "Request Validation Fail"
}
]'::jsonb as regionSales
)
SELECT (
SELECT jsonb_agg( sale -> 'statusCode')
FROM jsonb_array_elements(regionSales) AS sale
)
FROM exampleData
推荐阅读
- java - 将 QueryByExampleExecutor 添加到存储库时出现错误“PropertyReferenceException:找不到类型的属性”
- java - 调用servlet进行文件下载时,JSF命令按钮只能点击一次
- reactjs - React 和 Express 的 Heroku 错误:找不到 app.js
- netlogo - 错误:你不能在海龟上下文中使用 %,因为 % 只是观察者
- c# - 在 Canvas 内拖动控件,以便当一个控件移动时,将另一个控件沿相同方向移动
- c++ - 在 CMake 中读取文件的命令
- git - PhpStorm git 合并分支没有冲突
- cors - Outlook 加载项的 CORS 错误
- java - 使用不同类型的数组解析 YAML
- c# - 在太空入侵者游戏中正确定位敌人的问题