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

如何在Snowflake中解析VARCHAR类型JSON数组提取lfd字段值

报错原因

GET()函数要求入参的JSON对象/数组必须是Snowflake的VARIANT结构化类型,你的col1是VARCHAR类型存储的纯文本JSON,没有经过结构化解析,直接传入字符串类型给GET()就会触发参数类型不匹配的报错。

正确提取方案

提取数组第一个元素的lfd字段

先通过PARSE_JSON()将VARCHAR类型的JSON文本显式转换为VARIANT类型,再做路径提取即可,两种常用写法:

  • 基于json_extract_path_text的兼容写法:
select 
  col1,
  json_extract_path_text(parse_json(col1), '0:lfd') as lfd_value
from your_table;
  • 基于Snowflake原生路径运算符的简洁写法(性能更优):
select
  col1,
  parse_json(col1)[0]:lfd::string as lfd_value
from your_table;

提取数组内所有元素携带的lfd字段

如果数组包含多个元素、且每个元素都可能存在lfd字段,可以用LATERAL FLATTEN把JSON数组打平成多行,自动过滤掉不带lfd字段的元素(比如你示例中第二个数组元素就没有lfd属性):

select
  col1,
  arr_element.value:lfd::string as lfd_value
from your_table,
lateral flatten(input => parse_json(col1)) arr_element
where arr_element.value:lfd is not null;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.13 16:15:54