首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Snowflake中,任何人在匹配时使用Merging into table,然后使用insert into select语句

在Snowflake中,任何人在匹配时使用Merging into table,然后使用insert into select语句
EN

Stack Overflow用户
提问于 2021-11-26 08:54:19
回答 1查看 35关注 0票数 1

在snowflake中,当匹配时合并into,然后使用insert () values (),这是可以正常工作的,但我有一个情况,即插入应该来自select语句

Merge into when Matched into () select * from dummy;-但这将失败,并出现错误

EN

回答 1

Stack Overflow用户

发布于 2021-11-26 15:03:28

根据文档,MERGE命令仅允许:

INSERT [(<col_name> [, ...])] VALUES (<expr> [, ...])

它不处理INSERT语句中的SELECT语句,但可以在USING子句中使用子查询,在那里您可能会传递SELECT和转换,它也可以是CTE (公用表表达式)。例如:

代码语言:javascript
复制
merge into target using (
   SELECT k, max (v) as v FROM src group by k) as b --<-- Your subquery
on target.k = b.k
when not matched then insert (k, v) values (b.k, b.v);

或使用CTE表达式:

代码语言:javascript
复制
with b as (
    SELECT k, max (v) as v FROM src group by k --<-- Your subquery
) 
merge into target using b
on target.k = b.k
when not matched then insert (k, v) values (b.k, b.v); 

参考:MERGECTE

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70121753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档