在 Redshift Spectrum 中选择带有连字符的字段

Posted

技术标签:

【中文标题】在 Redshift Spectrum 中选择带有连字符的字段【英文标题】:Select field with Hyphen in Redshift Spectrum 【发布时间】:2020-05-14 11:27:02 【问题描述】:

我正在尝试通过 Redshift Spectrum 提取名称中带有连字符的嵌套字段

SELECT mystruct.mysubstruct.my-field.id
FROM my_external_schema.my_table 

我在其他DBMS中看到建议用双引号将字段名括起来:

"mystruct.mysubstruct.my-field.id"

或反引号

`mystruct.mysubstruct.my-field.id`

但这些都不适合我。

有什么建议吗?

【问题讨论】:

【参考方案1】:

由于双引号允许转义特殊字符,因此执行“mystruct.mysubstruct.my-field.id”意味着您正在寻找名为“mystruct.mysubstruct.my-field.id”的列在顶层并且不作为嵌套列,因为点不用于提取字段。

你要做的是

SELECT mystruct.mysubstruct."my-field".id
FROM my_external_schema.my_table 

【讨论】:

以上是关于在 Redshift Spectrum 中选择带有连字符的字段的主要内容,如果未能解决你的问题,请参考以下文章

“解析列类型时出错”Redshift Spectrum

AWS Spectrum 扫描错误压缩文件意外结束

如何使用 Psycopg2 在 Redshift Spectrum 中添加分区 -

Redshift Spectrum 为查询扫描的数据大小

Redshift Spectrum 性能对比 Athena

洞察 Redshift Spectrum 查询错误