【发布时间】:2021-10-08 04:15:55
【问题描述】:
我正在尝试对读取雪花表中的值的更新查询进行参数化,如下所示。
雪花查询:
update tgtTable set @col_name = @newVal
from srcTable
where lower(@col_name) = @old_val
srcTable:
+----------+------------+------------+--------------+
|col_name |modified_dt |old_val |new_val |
+----------+------------+------------+--------------+
|franchise |2021-02-05 |NDDA Boston |NCRT Colo |
|acct_type |2021-04-13 |Chk |Sav |
|pref_lang |2021-05-25 |Eng-UK |Eng-US |
+----------+------------+------------+--------------+
上表中col_name 的值-franchise、acct_type 和pref_lang 是tgtTable 的实际列,我试图根据old_val 和srcTable 的new_val 对其进行更新在上面Snowflake query.
但是我遇到了SQL 编译错误:语法错误
有人可以帮助我为这种方法提供解决方案吗?提前致谢。
【问题讨论】:
-
你在哪里运行这个查询?为什么是“@”?
-
我正在尝试在 Snowflake 中运行此查询。我尝试在查询中对来自 srcTable 的 col_name、old_val 和 new_val 进行参数化,但没有奏效....
-
你可以试试不带
@吗? -
SQL 执行器在实际执行之前应该知道它应该返回什么。这就是为什么参数不能代替静态 SQL 中的 SQL 语句部分
标签: sql snowflake-cloud-data-platform snowflake-schema