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

Snowflake中如何检索字符串数组的值?ARRAY_CONTAINS失效排查

解决Snowflake数组包含判断返回False的问题

问题根源

你当前的CASE语句存在两个关键错误:

  • 参数顺序颠倒:Snowflake的ARRAY_CONTAINS函数语法是ARRAY_CONTAINS(<要查找的元素>, <目标数组>),你把目标数组放在了第一个参数位置,导致判断逻辑完全错误。
  • 不必要的数组构造:用ARRAY_CONSTRUCT('1'::TEXT)会生成一个子数组["1"],此时函数会判断目标数组是否包含这个子数组(而非单个元素'1'),自然返回False。

修正后的SQL

CASE 
     WHEN ARRAY_CONTAINS('1'::TEXT, STRTOK_TO_ARRAY(TABLE.COLUMN1,' '::TEXT)) THEN TRUE 
     ELSE FALSE 
     END AS m_1

简化写法

也可以直接省略CASE语句,因为ARRAY_CONTAINS本身会返回布尔值:

ARRAY_CONTAINS('1'::TEXT, STRTOK_TO_ARRAY(TABLE.COLUMN1,' '::TEXT)) AS m_1

验证示例

对于COLUMN1值为"1 2 9"的行,STRTOK_TO_ARRAY生成数组["1","2","9"],修正后的函数会正确识别数组中包含元素'1',返回TRUE。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 02:59:56