Snowflake:无法评估不受支持的子查询类型

时间:2020-05-04 13:10:36

标签: numbers boolean subquery snowflake-cloud-data-platform

我正在使用雪花作为数据仓库。我在AWS S3上有一个CSV文件。我正在编写一个合并SQL,以将CSV中接收的数据合并到雪花表中。我在时间维度表中有一列,其数据类型为SF中的Number(38,0)数据类型。该表保存所有日期时间,例如是列 time_id = 232和时间= 12:00 在CSV中,我得到一列标签为时间和值的标签为12:00。

在合并SQL中,我正在获取此值并尝试获取它的time_id。

update table_name set start_time_dim_id = (select time_id from time_dim t where t.time_name = csv_data.start_time_dim_id)  

在此语句上,我收到此错误“ SQL编译错误:无法评估不受支持的子查询类型”

我正在努力解决它,在此期间,我用谷歌搜索并得到了一个参考。 https://github.com/snowflakedb/snowflake-connector-python/issues/251 因此,要确定是否有人遇到此问题?如果是,请多多指教。

2 个答案:

答案 0 :(得分:0)

似乎是转换问题。我建议您检查CSV文件中的数据。可能有错误或缺失的值。请检查您的数据,并确保其返回数字值

create table simpleone ( id number );
insert into simpleone values ( True );

最后一条语句失败:

SQL compilation error: Expression type does not match column data type, expecting NUMBER(38,0) but got BOOLEAN for column ID

如果您提供示例数据,并且使用SQL产生此错误,也许我们可以提供解决方案。

答案 1 :(得分:0)

不幸的是,雪花中相关和嵌套的子查询在此阶段受到限制。

我会尝试运行以下内容:

update table_name 
set start_time_dim_id= time_id 
from time_dim
where t.time_name=csv_data.start_time_dim_id
相关问题