我有2个表1 [dbo].[t_Olympic_Country]
,其中我有所有县名单,但人口和GDP是空的。现在我有第二张表,其中大多数国家都有人口和GDP数据,但它没有相同数量的数据。如果cuntry名称与[dbo].[temptable1]
匹配,我想从第二个临时表[dbo].[t_Olympic_Country]
输入第一个[dbo].[t_Olympic_Country]
的GDP和人口值。我的意思是[dbo].[t_Olympic_Country]
的条件批量更新。
我尝试过以下错误:
INSERT INTO [dbo].[t_Olympic_Country](
[GDP]
)
SELECT
temp.[GDP]
FROM [dbo].[temptable1] temp
WHERE (temp.[Country_Name] IN (SELECT tl.[Country_Name] FROM [dbo].[t_Olympic_Country] tl))
and temp.Country_Name not like 'Indep. Olympic Participants'
order by temp.[Country_Name]
Msg 515,Level 16,State 2,Line 1
无法将值NULL插入列' Country_Id',table' Olympic.dbo.t_Olympic_Country&#39 ;;列不允许空值。 INSERT失败。 该语句已终止。 ASC
请查看我的表格结构如下:
[DBO] [t_Olympic_Country]:
Country_Id Country_Name Country_Size c_population GDP
1 Afghanistan Null Null NULL
2 Albania Null Null NULL
3 Algeria Null Null NULL
4 American Samoa Null Null NULL
5 Andorra Null Null NULL
[DBO] [temptable1]:
Country_Name GDP c_population
Afghanistan 20038215159.38730 31627506
Albania 13211513725.58810 2894475
Algeria 213518488688.12000 38934334
American Samoa 645000000.00000 55434
Andorra 3249000000.00000 72786
答案 0 :(得分:0)
你有"国家"在两个表中。所以我认为你不需要插入新的记录就需要更新匹配的记录。你可以用JOIN运行更新查询。 如下面的查询
group_by(data, -x)
根据您的逻辑包含其他WHERE条件
答案 1 :(得分:0)
是非常感谢有效。
nodetool