Копировать данные из одной строки в другую в SQL Server в той же таблице - PullRequest
0 голосов
/ 19 марта 2019

У меня есть таблица с двумя вариантами данных:

Таблица MYDATA

Address           StreetNumber       Provider
----------------------------------------------
123 Main Street   1                  VersionA
123 Main Street   NULL               VersionB

Я хочу обновить StreetNumber версии A до версии B.

Будут тысячи записей, и совпадение будет в столбце «Адрес»

Я подумал использовать:

update MYDATA
set StreetNumber = (select top 1 streetnumber
                    from MYDATA Goo 
                    where Goo.Address = Address and Provider = 'VersionA')
where Provider = 'VersionB'

Но кажется, что вложение не ищет строку для обновления... точнее, он выбирает одну запись и обновляет все записи с тем же номером улицы?

1 Ответ

2 голосов
/ 19 марта 2019

Это должно работать:

UPDATE MDb
SET StreetNumber = MDa.StreetNumber
FROM MYDATA MDb
     JOIN MYDATA MDa ON MDb.[Address] = MDa.[Address]
WHERE MDb.Provider = 'VersionB'
  AND MDa.Provider = 'VersionA'; --You can move this clause to the ON if you prefer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...