首页 > 解决方案 > 在 INSERT 语句的值子句上使用表达式时出现雪花问题

问题描述

嗨,我遇到了 Snowflake 的这个问题。我在 Snowflake SP 中有一些类似这样的插入语句:

DROP TABLE TABLE1;

CREATE table TABLE1 (COLUMN1 VARCHAR(10));

insert into table1 values('TEST' || TRIM(0));

当我执行这些语句时,我收到如下错误: SQL compilation error: Invalid expression ['TEST' || '0'] in VALUES clause

雪花中的 VALUES 子句是否有记录的限制。有什么办法解决这个问题吗?

标签: snowflake-cloud-data-platform

解决方案


根据此处的文档:https ://docs.snowflake.com/en/sql-reference/constructs/values.html

每个表达式都必须是常量,或者是在 SQL 语句编译期间可以作为常量求值的表达式。

大多数简单的算术表达式和字符串函数可以在编译时求值,但大多数其他表达式不能。

在查看您的示例时,您TRIM在数字表达式上使用 a ,这不是必需的。如果您删除TRIM(),那么您的示例可以正常工作。


推荐阅读