Snowflake中object_construct如何添加硬编码固定值
解决方案
Snowflake的OBJECT_CONSTRUCT函数入参规则为按顺序交替传入键名、键值,不管键值来自表字段还是硬编码常量,都遵循该规则即可,不需要额外加AS别名或嵌套VALUES函数。
你之前尝试的'language_code' as 'en'、values('language_code','en')不符合函数入参语法,因此无法生效;你注释掉的'languageCode','en'本身是符合键值对传参规则的,只需要注意参数间的逗号不要冗余即可。
修正后可运行代码
with address as ( SELECT address_id, array_agg(object_construct( 'addressKey',address_key, 'ChangeTime',CHANGE_TMST, 'addressType',ADDRESS_TYPE, 'ADDRESS_LINE_1',ADDRESS_LINE_1, 'ADDRESS_LINE_2',ADDRESS_LINE_2, 'ADDRESS_LINE_3',ADDRESS_LINE_3, 'languageCode','en' )) from ADDRESS group by address_id) SELECT * FROM address;
扩展说明
- 硬编码其他类型的固定属性时,直接按「键名字符串, 常量值」的格式追加即可,支持字符串、数字、布尔值、NULL等所有Snowflake支持的常量类型,例如追加
'isVerified', false、'dataSource', 'official'都可正常生成对应JSON属性 - 传参时注意不要在键和值之间加其他语法关键字,部分老版本Snowflake不支持参数末尾的冗余逗号,不要在最后一个键值对后多余留逗号
内容的提问来源于stack exchange,提问作者Siddharth
相关产品推荐
相关产品推荐

