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

Snowflake中高效拆分数组表为单行元素表的方法咨询

Snowflake中高效拆分数组表为单行元素表的方法咨询

嗨,这个需求刚好Snowflake有原生的高效解决方案,完全不用折腾字符串转换那套麻烦事!

Snowflake提供了FLATTEN这个专门的表函数,就是用来处理数组、对象这类嵌套数据的,性能比手动字符串操作好太多,因为是底层原生支持的逻辑。

假设你的表名为array_table,存储数组的列名为my_array,直接用下面的SQL就能得到你想要的结果:

SELECT value
FROM array_table,
LATERAL FLATTEN(input => my_array);

简单解释下这段代码:

  • LATERAL关键字用来关联原表的每一行和FLATTEN拆分出来的多行数据
  • FLATTEN的input参数指定要拆分的数组列
  • 查询结果里的value字段就是拆分后的单个数组元素

用你给出的示例数据测试的话,运行这段SQL会返回:

"abc"
"def"
"ghi"
"jkl"
"mno"
"pqr"

另外补充个小细节:如果你的数组列可能存在空值或者空数组,默认FLATTEN会忽略这些行。如果想要保留原表的所有行(空数组对应结果为NULL),可以改成LATERAL OUTER FLATTEN:

SELECT value
FROM array_table,
LATERAL OUTER FLATTEN(input => my_array);

备注:内容来源于stack exchange,提问作者SecretIndividual

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 07:35:31