Redshift Spectrum提取STRUCT中带@前缀字段的问题求助
Redshift Spectrum提取带@符号的结构体字段解决方法
问题原因
你的结构体字段名包含@特殊符号,直接使用常规点语法访问会触发语法错误;去掉@访问时,因实际字段名带@,无法匹配到对应字段,所以返回NULL。
正确查询语句
在Redshift中,访问包含特殊字符的结构体字段时,需要用双引号包裹带特殊符号的字段名,示例语句如下:
SELECT c.id."@assigningAuthorityName" FROM "spectrum"."table" c
注意事项
- 双引号包裹的标识符区分大小写,请确保字段名的大小写与表结构完全一致(比如你的表结构中是
@assigningAuthorityName,而示例值里是@assigningauthorityname,需以实际数据中的字段名大小写为准)。 - 若你的Redshift集群启用了
enable_case_sensitive_identifier参数,更要严格匹配字段名的大小写,否则会返回NULL。
内容的提问来源于stack exchange,提问作者Edoardo De Gaspari
相关产品推荐
相关产品推荐

