产生此错误的原因是查询的表或视图没有列,所以无法使用SELECT *。要解决这个问题,您可以指定要选择的特定列,而不是使用通配符。例如:
SELECT column1, column2, column3 FROM my_table;
如果您想要选择所有列,但表或视图没有列,则可以在创建表或视图时指定一个虚拟列,以便您可以使用SELECT *。例如:
CREATE TABLE my_table ( dummy_column string ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( 'separatorChar' = ',', 'quoteChar' = '"', 'escapeChar' = '\' ) STORED AS TEXTFILE;
在这个示例中,我们创建了一个名为my_table的表,并指定了一个虚拟列dummy_column。虚拟列不需要包含任何实际数据,但是它可以让您在执行SELECT *时从表中选择所有列,而不会出现“AWS Athena:不允许从没有列的关系中进行SELECT *”错误。