我想在同一个查询中有多个合并语句(一个接一个) 但我不能使用相同的日期来源。例如:
WITH DATA as(
SELECT * FROM tables_or_joins
)
MERGE table_name as Target
USING
(SELECT * FROM DATA JOIN another table
)
....
do something more; --and finish this statement here
-- start another merge here
MERGE table_name_2 as Target
USING(
SELECT * FROM DATA and join with another table
)
do something else
但输出为Invalid object name 'DATA'.
在第二次合并中。有没有其他方式如何在两个合并中使用数据?希望这很清楚。
答案 0 :(得分:0)
CTE仅适用于一个陈述
甚至无法在DATA
您可以拥有多个CTE但仍然只有一个实际声明
答案 1 :(得分:-1)
您可以使用多个CTE语句
WITH DATA as(SELECT * FROM tables_or_joins ),DATA2 AS((SELECT * FROM DATA JOIN另一个表)
来自DATA d的SELECT *在d.id = d2.id
上加入DATA2 d2OR
从DATA union中选择*从DATA2中选择*