SELECT * INTO "2020_to_2021_divvy_tripdata"
FROM
(MERGE [PortfolioDB].[dbo].['202008-divvy-tripdata$'] as "202008"
USING [PortfolioDB].[dbo].['202007-divvy-tripdata$'] as "202007" on [202007].ride_id = [202008].ride_id
WHEN NOT MATCHED THEN
INSERT VALUES ([202008].*)
我希望它从202008年的数据并合并到202007年,以便一个表简单地合并到另一个表的底部,但它说*附近的语法不正确。我已经尝试了所有以前的工具包,如改变方括号组合等。
两个表的格式相同,列名匹配。
我试着从这里模仿代码。最后,我将合并多个月份,以创建一个全年表。
你的INSERT VALUES()
有两个问题…
- 您应该从
[202007]
(源)插入,而不是从[202008]
(目标)插入 - 不能使用
[202007].*
,必须单独列出所有列
然后,您需要MERGE
的OUTPUT
子句以使其数据可用于外部查询。
下面是一个示例:db<>fiddle
这是你的声明的潜在重写…
INSERT INTO
"2020_to_2021_divvy_tripdata"
SELECT
*
FROM
(
MERGE [PortfolioDB].[dbo].['202008-divvy-tripdata$'] as "202008"
USING [PortfolioDB].[dbo].['202007-divvy-tripdata$'] as "202007"
ON [202007].ride_id = [202008].ride_id
WHEN NOT MATCHED THEN
INSERT VALUES ([202007].x, [202007].y, [202007].z)
OUTPUT
inserted.*
)
merge_inserted