无法从函数评估不受支持的子查询类型

Posted

技术标签:

【中文标题】无法从函数评估不受支持的子查询类型【英文标题】:Unsupported subquery type cannot be evaluated from Function 【发布时间】:2020-01-14 07:42:23 【问题描述】:

我正在尝试使用 where exists 子查询,如下所示:

WITH FILTER AS(
SELECT    matchingvalues
FROM      (VALUES ('This'),('Any')) filter(matchingvalues)
),
SRC AS (
SELECT   Column_A
        ,Column_B
FROM     (VALUES ('This','1'),('That','2'))SRC(Column_A,Column_B)
)
SELECT   *
FROM     SRC
WHERE    EXISTS (   SELECT   1
                    FROM     FILTER
                    WHERE    Column_A = matchingvalues
                    OR       matchingvalues = 'Any'
                )

这在 T-sql 中有效,但在雪花中无效,并返回以下错误:

“SQL 编译错误:无法评估不支持的子查询类型”

【问题讨论】:

【参考方案1】:

此问题已在最新版本的 Snowflake(3.56)中得到修复。这个版本将在本周或下周发布。您可以从以下门户验证发布:

https://support.snowflake.net/s/topic/0TO0Z000000Unu5WAC/releases

【讨论】:

以上是关于无法从函数评估不受支持的子查询类型的主要内容,如果未能解决你的问题,请参考以下文章

SQL 编译错误:无法在 Snowflake 中评估不受支持的子查询类型

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

雪花不支持的子查询类型无法在 UDF 标量中评估

替换雪花中的子查询

雪花标量 UDF 返回 无法评估不支持的子查询类型

BIGQUERY:连接谓词中的表不受支持的子查询