You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake执行Update语句报‘Unsupported subquery type’错误的解决方法

修复Snowflake中UPDATE子查询报错的方案

错误原因

Snowflake不支持在SET子句中使用这种关联标量子查询的写法,从而触发Unsupported subquery type cannot be evaluated错误。

修复后的SQL(推荐写法)

使用Snowflake原生支持的UPDATE...FROM语法,通过表关联完成赋值:

UPDATE upd_tbl a1
SET last_update_date = SYSDATE(),
    rno = b1.rno
FROM sid b1
WHERE a1.rowid_object = b1.rowid_object;

语法说明

  • 通过FROM子句直接关联upd_tbl和sid表,规避了子查询的类型限制
  • WHERE条件确保仅更新在sid表中存在匹配rowid_object的行,与原语句WHERE rowid_object IN (...)逻辑完全一致
  • 这种写法的执行效率远高于子查询方式

特殊情况处理

如果sid表中同一个rowid_object对应多行数据,直接关联会因匹配到多行报错,此时可以用聚合函数确保返回单值:

UPDATE upd_tbl a1
SET last_update_date = SYSDATE(),
    rno = (SELECT MAX(rno) FROM sid b1 WHERE a1.rowid_object = b1.rowid_object)
WHERE EXISTS (SELECT 1 FROM sid b1 WHERE a1.rowid_object = b1.rowid_object);

内容的提问来源于stack exchange,提问作者Sherin Shaziya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 18:45:41