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

如何在Snowflake中拆分JSON Variant列并提取xyz_id字段

解决方案

你的Snowflake数据表中列D的结构比较特殊:它是Variant类型的数组,数组内的唯一元素是JSON数组的字符串形式(被双引号包裹)。要提取xyz_id并创建列E,可以通过以下SQL实现:

1. 先查询验证结果

SELECT
    D,
    PARSE_JSON(D[0])[0]:xyz_id::INT AS E
FROM your_table;

2. 永久新增列E

如果需要在表中永久添加列E,执行:

ALTER TABLE your_table
ADD COLUMN E INT AS (PARSE_JSON(D[0])[0]:xyz_id::INT);

各部分作用说明:

  • D[0]:从Variant数组中取出第一个元素(即带引号的JSON数组字符串)
  • PARSE_JSON(D[0]):将字符串解析为Variant类型的JSON数组
  • [0]:xyz_id:从JSON数组中取出第一个对象,提取其中的xyz_id字段
  • ::INT:将提取的数值转换为整数类型(可根据实际需求调整为FLOAT等其他类型)

异常处理(可选)

如果存在数据格式不规范的情况,建议用TRY_PARSE_JSON避免解析失败导致查询报错:

ALTER TABLE your_table
ADD COLUMN E INT AS (TRY_PARSE_JSON(D[0])[0]:xyz_id::INT);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 14:25:29