Snowflake Dashboard多值筛选SQL报错:期望使用=:Plan_ID
解决Snowflake Dashboard多选筛选器IN子句报错问题
问题原因
Snowflake Dashboard的多选筛选器返回的是数组类型参数,直接用IN (:Plan_ID)的写法无法识别数组格式,因此触发语法错误。
正确写法
用Snowflake的ARRAY_CONTAINS函数替代IN子句,适配多选参数的数组格式:
SELECT id FROM ACCESS_TOKENS WHERE ARRAY_CONTAINS(plan_id::VARIANT, :Plan_ID)
如果plan_id是数值类型,需确保字段与参数类型匹配:
SELECT id FROM ACCESS_TOKENS WHERE ARRAY_CONTAINS(plan_id::INT, :Plan_ID)
补充说明
- 多选模式下,
:Plan_ID会被解析为数组(例如[1,3,5]),ARRAY_CONTAINS可检查字段值是否存在于该数组内 - 必须将
plan_id转换为与参数一致的类型(如VARIANT或对应数值类型),避免类型不匹配问题
内容的提问来源于stack exchange,提问作者Mrs M
相关产品推荐
相关产品推荐

