You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Snowflake SQL中查询嵌套JSON数组内包含指定字段的对象

Snowflake嵌套JSON筛选包含指定字段的数组元素实现方案

假设存储JSON数据的表名为your_table,JSON内容对应的字段名为json_col,可通过以下SQL实现需求:

SELECT emp.value AS employee_with_photo
FROM your_table,
LATERAL FLATTEN(input => json_col:employees.employee) emp
WHERE OBJECT_HAS_KEY(emp.value, 'photo') = TRUE;

逻辑说明

  • LATERAL FLATTEN 函数用于将嵌套在JSON中employees下的employee数组拆分为单行单条的员工对象,拆分后的单个员工对象存储在emp.value字段中
  • OBJECT_HAS_KEY 是Snowflake原生提供的JSON对象校验函数,入参为待校验的JSON对象和要检查的字段名,返回布尔值表示该对象是否包含对应字段
  • 筛选条件仅会保留包含photo字段的员工对象,完全匹配你的输出要求

如果你需要将员工字段展开为独立的关系型列返回,可使用如下变体写法:

SELECT 
 emp.value:id::STRING AS employee_id,
 emp.value:firstName::STRING AS first_name,
 emp.value:lastName::STRING AS last_name,
 emp.value:photo::STRING AS photo_url
FROM your_table,
LATERAL FLATTEN(input => json_col:employees.employee) emp
WHERE OBJECT_HAS_KEY(emp.value, 'photo') = TRUE;

内容的提问来源于stack exchange,提问作者user3461502

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 18:45:04