Snowflake查询含对象数组的表时筛选指定对象属性的语法
Snowflake 保留数组对象指定属性的查询语法
你可以通过两种方式实现需求,核心都是遍历数组并处理每个对象:
方法一:明确构造目标对象(适合保留少数属性的场景)
用ARRAY_TRANSFORM遍历数组中的每个对象,再通过OBJECT_CONSTRUCT重新构建只包含需要属性的对象:
SELECT email, ARRAY_TRANSFORM( myarray, obj -> OBJECT_CONSTRUCT( 'a', obj:a, 'b', obj:b, 'c', obj:c, 'd', obj:d, 'f', obj:f ) ) AS myarray FROM mytable;
方法二:直接剔除不需要的属性(适合只删除少数属性的场景)
如果只是要去掉'e'属性,用OBJECT_REMOVE更简洁:
SELECT email, ARRAY_TRANSFORM( myarray, obj -> OBJECT_REMOVE(obj, 'e') ) AS myarray FROM mytable;
说明
两种方法输出的myarray都是ARRAY类型,每个元素是符合要求的对象,email保持原VARCHAR类型不变。
内容的提问来源于stack exchange,提问作者Mark G
相关产品推荐
相关产品推荐

