首页 > 解决方案 > 雪花:无法评估不受支持的子查询类型

问题描述

我正在使用雪花作为数据仓库。我在 AWS S3 有一个 CSV 文件。我正在编写一个合并 sql 以将 CSV 中收到的数据合并到雪花表中。我在时间维度表中有一个数据类型为 SF 中 Number(38,0) 数据类型的列。此表包含所有日期时间,例如列 time_id= 232 和 time=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 所以想确定是否有人遇到过这个问题?如果是,将不胜感激指针。

标签: numbersbooleansubquerysnowflake-cloud-data-platform

解决方案


这似乎是一个转换问题。我建议您检查 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,也许我们可以提供解决方案。


推荐阅读