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

如何在Snowflake中从两个单行列表构造JSON数组

在Snowflake中构造包含两表单行值的JSON数组

有两种常用方法可以实现需求,以下是具体示例:

方法一:使用ARRAY_CONSTRUCT结合子查询

直接通过子查询获取两张表的唯一值,再用ARRAY_CONSTRUCT函数组合成JSON数组:

SELECT ARRAY_CONSTRUCT( (SELECT * FROM t1), (SELECT * FROM t2) ) AS result_json_array;

该写法简洁直接,适合明确知道两张表各仅有一行一列的场景,子查询会分别返回A和B的值,最终生成[A, B]格式的JSON数组。

方法二:使用UNION ALL合并后通过ARRAY_AGG聚合

先将两张表的数据合并,再用ARRAY_AGG函数将结果聚合为数组:

SELECT ARRAY_AGG(val) AS result_json_array
FROM (
    SELECT * AS val FROM t1
    UNION ALL
    SELECT * AS val FROM t2
) combined_tables;

如果两张表的列名不一致,需要给列统一别名(示例中用val)。这种方法更灵活,即便后续表中新增行,也能将所有值按顺序聚合为数组;当前场景下,因为每张表仅一行,结果同样是[A, B]。

注意事项

  • 如果A和B的数据类型不同,Snowflake会自动进行类型兼容转换,确保生成合法的JSON数组。
  • 若需要确保数组元素为标准JSON类型,可以在子查询中用TO_VARIANT函数转换,例如(SELECT TO_VARIANT(*) FROM t1)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 21:31:11