我正在将数据从一个表迁移到SQL Server中的另一个表,在此过程中,我需要做的是“我在旧表中有10列,其中一列是'CityName',即varchar,而在新表中,我有一个列'CityId',它是一个整数。我还有另一个表,其中包含有关城市ID和名称的数据。我需要在新表中存储适当的cityId而不是CityName。请帮帮我。
答案 0 :(得分:2)
您需要将源表加入城市信息表中的CityName字段:
INSERT INTO dbo.Destination (CityID, OtherStuff)
SELECT t1.CityID, t2.OtherStuff
FROM CityInformationTable t1
INNER JOIN SourceTable t2
ON t1.CityName = t2.CityName
答案 1 :(得分:1)
下面应该给您一个想法,您需要内部连接到查询表中才能实现此目的。
declare @t_cities table (Id int, City nvarchar(20))
insert into @t_cities
(Id, City)
values
(1, 'London'),
(2, 'Dublin'),
(3, 'Paris'),
(4, 'Berlin')
declare @t table (City nvarchar(20), SomeColumn nvarchar(10))
insert into @t
values
('London', 'AaaLon'),
('Paris', 'BeePar'),
('Berlin', 'CeeBer'),
('London', 'DeeLon'),
('Dublin', 'EeeDub')
declare @finalTable table (Id int, SomeColumn nvarchar(10))
insert into @finalTable
select c.Id, t.SomeColumn
from @t t
join @t_cities c on c.City = t.City
select * from @finalTable
输出:
Id SomeColumn
1 AaaLon
3 BeePar
4 CeeBer
1 DeeLon
2 EeeDub