Update 语句中的子查询在 Snowflake 中不起作用

Posted

技术标签:

【中文标题】Update 语句中的子查询在 Snowflake 中不起作用【英文标题】:Subquery in Update statement not working in Snowflake 【发布时间】:2021-08-18 14:21:24 【问题描述】:

我在 Snowflake 中运行以下查询:

UPDATE PROVIDER_XO_SCORE_TABLE AS PXS 
SET PXS.PROVIDER_ID = (SELECT P.PROVIDER_ID 
                       FROM PROVIDER_TABLE P 
                       WHERE PXS.XPI = P.XPI);

此查询在 mysql 中运行良好,但在 Snowflake 中给出以下错误消息。

SQL 编译错误:

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

【问题讨论】:

【参考方案1】:

您可以将类似连接的语法与UPDATE...FROM 一起使用:

UPDATE PROVIDER_XO_SCORE_TABLE PXS 
SET PROVIDER_ID = P.PROVIDER_ID
FROM PROVIDER_TABLE P 
WHERE PXS.XPI = P.XPI;

【讨论】:

以上是关于Update 语句中的子查询在 Snowflake 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

sql语句update语句中嵌套的子查询该怎么写?

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

如何在 SQL Server 中的 UPDATE 查询的子查询中引用表变量

替换雪花中的子查询

9)子查询

如何替换 snowflake.execute 语句中的循环结果?