问题描述
我的redshift集群中有一个外部(s3)表,其中包含一个字符串列数组。它实际上只是一个字符串列表。我可以查询,只选择数组列就不用担心了。我可以毫无疑问地查询所有3个数组列,但是只要尝试查询不是数组的其他列,我就会得到以下信息:
在其他一些堆栈溢出问题上,我尝试了以下方法
select id_col,b
from test.test_table as a,a.array_col as b
但是当我运行上面的代码时,我得到:不允许在array_col上导航,因为它不是结构/元组类型
当然,此错误消息是有意义的,因为它不是struct或tuple类型,但是我迷失了如何查询简单的字符串数组,却找不到有关如何执行此操作的文档。任何帮助或建议,将不胜感激!
解决方法
自重命名外部表以来,必须对要检索的所有字段使用该名称;以与处理数组列相同的方式。您的查询将是:
select a.id_col,b
from test.test_table as a,a.array_col as b