SQL 编译错误:无法在 Snowflake 中评估不受支持的子查询类型
Posted
技术标签:
【中文标题】SQL 编译错误:无法在 Snowflake 中评估不受支持的子查询类型【英文标题】:SQL compilation error: Unsupported subquery type cannot be evaluated in Snowflake 【发布时间】:2020-02-24 12:24:03 【问题描述】:我面临 SQL 编译错误:无法在用于 QA 的 Snowflake 实例之一中评估不支持的子查询类型以进行以下查询:
Select
CASE WHEN (Select count(USERSOURCE) From QA_DW.PRDODB.User Where
USERSOURCE=3) = 0 OR RECID not in (Select UD_SRC_KEY From QA_DW.PRDODB.User
Where
USERSOURCE=3)
THEN CreatedDateTime
ELSE CONVERT_TIMEZONE('US/Pacific','UTC',cast(CURRENT_TIMESTAMP() as
TIMESTAMP_NTZ))
END as FROM_DTIMEUTC
FROm QA_STAGING.HISTODB.STG_User_TBL
相同的查询在 DEV 实例中运行。
【问题讨论】:
【参考方案1】:使用这个查询代替上面的查询:
SELECT
CASE WHEN c.COUNT_USERSOURCE = 0 OR RECID NOT IN (SELECT UD_SRC_KEY FROM
QA_DW.PRDODB.USER WHERE USERSOURCE=3)
THEN CreatedDateTime
ELSE CONVERT_TIMEZONE('US/Pacific','UTC',CAST(CURRENT_TIMESTAMP() AS TIMESTAMP_NTZ))
END AS FROM_DTIMEUTC
FROM QA_STAGING.HISTODB.STG_User_TBL
OUTER APPLY (
SELECT
COUNT(USERSOURCE) AS COUNT_USERSOURCE
FROM QA_DW.PRDODB.USER WHERE USERSOURCE=3
) AS C
【讨论】:
以上是关于SQL 编译错误:无法在 Snowflake 中评估不受支持的子查询类型的主要内容,如果未能解决你的问题,请参考以下文章
Snowflake:SQL 编译错误:不是有效的 group by 表达式
将 CSV 文件从 S3 加载到 Snowflake 时出现 SQL 编译错误
SQL 编译错误:从 S3 复制到 Snowflake 时,JSON 文件格式只能生成一列类型变量或对象或数组
雪花; SQL 编译错误:无效的对象类型:GET_DDL 上的“EXTERNAL_TABLE”(“DATABASE”,“MyDb”)