sql - Snowflake SQL:如何使用 JSON 对象循环遍历数组,以查找符合条件的项目
问题描述
打破我的头。在雪花中,我的字段city_info
看起来像(3 个样本记录)
[{"name": "age", "content": 35}, {"name": "city", "content": "Chicago"}]
[{"name": "age", "content": 20}, {"name": "city", "content": "Boston"}]
[{"name": "city", "content": "New York"}, {"name": "age", "content": 42}]
我尝试从中提取一city
列
Chicago
Boston
New York
我试图把它弄平
select *
from lateral flatten(input =>
select city_info::VARIANT as event
from data
)
从那里我可以得出该值,但这仅允许我为 1 行执行此操作(因此我必须添加limit 1
没有意义的内容,因为我的所有行都需要此)。
如果我尝试为 3 行执行此操作,它会告诉我subquery returns more than one row.
任何帮助表示赞赏!克里斯
解决方案
你可以把它写成:
SELECT value:content::string AS city_name
FROM tab,
LATERAL FLATTEN(input => tab.city_info)
WHERE value:name::string = 'city'
推荐阅读
- python - Python 3.8 解析导入路径
- api - Microsoft Graph API odata $filter 查询似乎不起作用
- azure-devops - 在 TFS 到 DevOps 迁移期间修复损坏的 TFS 工作项链接
- javascript - 获取已挂载的 vueJs 中图像的大小
- python - Python Google Spreadsheet API 气泡图未正确显示
- typescript - 在 svelte 文件中导出 typescript 类型
- html - 当我在 Django 中使用“扩展”和“阻止”时,我的 CSS 没有出现
- mongodb - 在 Upsert 操作中来自 MongoDB 的重复键错误
- python - 来自 Python 的 Rofi 通行证列表
- git - 如何使 zsh 完成显示所有参数?