【发布时间】:2022-10-12 21:24:19
【问题描述】:
我有一个查询,其输出为下表(2 列)。这意味着,我将使用结果将其包装在合并到语句中。
INSERT_COLUMNS UPDATE_COLUMNS
BANK_NAME target.BANK_NAME = source.BANKNAME
我在说的是这样的:
with sql_prepare_merge as (
SELECT *
FROM another_table
),
MERGE INTO bank_raw AS target
USING bank AS source
ON source.id = target.id
WHEN MATCHED THEN
UPDATE SET (select update_columns from sql_prepare_merge)
WHEN NOT MATCHED THEN
INSERT (select insert_columns from sql_prepare_merge)
VALUES (source.id, (select insert_columns from sql_prepare_merge));
请记住,“sql_prepare_merge”是 CTE 中的名称,我在其中获取与您共享的表 - 它包含更多代码,但它们在这里没有帮助。所以,我打算把子查询产生的文本插入到合并语句中。
到目前为止,我得到的错误是:syntax error line 19 at position 4 unexpected 'WHEN'.。顺便说一句,这是在雪花里面。
【问题讨论】:
标签: sql snowflake-cloud-data-platform