Мне нужно перенести данные из одной старой таблицы в новую таблицу, сохранив соответствующий CityId вместо CityName - PullRequest
0 голосов
/ 15 января 2019

Я перемещаю данные из одной таблицы в другую в SQL Server. В этом процессе мне нужно сделать следующее: «У меня есть 10 столбцов в старой таблице, один столбец -« CityName », то есть varchar, а в новой таблице - У меня есть столбец «CityId», который является целым числом. И у меня есть другая таблица, в которой есть данные об идентификаторе города и названиях. Мне нужно хранить соответствующий cityId в новой таблице вместо CityName. Пожалуйста, помогите мне. Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Ниже следует дать вам представление, вам нужно внутреннее соединение с таблицей поиска, чтобы достичь этого.

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
0 голосов
/ 15 января 2019

Вам необходимо присоединить исходную таблицу к полю CityName в информационной таблице города:

INSERT INTO dbo.Destination (CityID, OtherStuff)
SELECT t1.CityID, t2.OtherStuff
FROM CityInformationTable t1
INNER JOIN SourceTable t2
ON t1.CityName = t2.CityName
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...