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

Snowflake含空格列名的MERGE操作报错求助

问题解决:Snowflake MERGE语句插入带空格列名表的错误修正

错误原因

你的MERGE语句中,INSERT的VALUES子句里写的是字符串字面量'string 1'和'number 1',其中'number 1'是字符串类型,而目标表的"number 1"列是NUMBER类型,类型不匹配导致报错。另外你的逻辑是要将源子查询中的数据插入目标表,所以应该引用源表T的列,而非硬编码字符串。

修正后的MERGE语句

merge into mytable using (
    select * from
        (
            values('a', 4),('b', 5)
        )
) as T ("string 1", "number 1") on FALSE
when not matched then
insert
    ("string 1", "number 1")
values
    (T."string 1", T."number 1");

关键说明

  • 引用带空格的列名必须用双引号包裹,单引号或$$适用于字符串字面量或标识符转义,但列名引用只能用双引号。
  • INSERT的VALUES部分需要对应源表T的列,这样才能将子查询中的('a',4)、('b',5)正确插入目标表的对应列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:31:21