在snowflake中,当匹配时合并into,然后使用insert () values (),这是可以正常工作的,但我有一个情况,即插入应该来自select语句
Merge into when Matched into () select * from dummy;-但这将失败,并出现错误
发布于 2021-11-26 15:03:28
根据文档,MERGE命令仅允许:
INSERT [(<col_name> [, ...])] VALUES (<expr> [, ...])
它不处理INSERT语句中的SELECT语句,但可以在USING子句中使用子查询,在那里您可能会传递SELECT和转换,它也可以是CTE (公用表表达式)。例如:
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表达式:
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); https://stackoverflow.com/questions/70121753
复制相似问题