Как обновить один столбец с возвращенными данными в SQL? - PullRequest
0 голосов
/ 05 июля 2018

Учитывая вывод инструкции SELECT ниже, как мне обновить поле «CameraLocationID» всех записей до значения в поле «LocationID»?

Текущее состояние:

ItemID  CameraID    CameraLocationID    LocationID
2       23038       NULL                335
3       23039       NULL                67
4       23040       NULL                34
5       23041       NULL                234

Желаемый выход:

ItemID  CameraID    CameraLocationID    LocationID
2       23038       335                 335
3       23039       67                  67
4       23040       34                  34
5       23041       234                 234

Что я пробовал:

  • Выбор, а затем попытка скопировать / вставить один столбец с помощью SSMS
  • INSERT INTO (зная, что это не сработает, я на самом деле не "INSERTING"
  • Скопируйте и вставьте значения LocationID в Excel, а затем попытайтесь вернуться в SQL с помощью SSMS

Есть ли способ SQL сделать это довольно быстро?

РЕДАКТИРОВАТЬ: для будущих путешественников CameraLocationID и LocationID находятся в разных таблицах. SELECT объединяет их в один выход перед применением ОБНОВЛЕНИЯ.

1 Ответ

0 голосов
/ 05 июля 2018
Update myTable set CameraLocationID = LocationID;

- это все, что вам нужно.

Если locationID идет из другой таблицы, вам нужно поле ID для связи, и я думаю, что источник и цель имеют поле CameraId:

Update targetTable
set CameraLocationId = sourceTable.LocationId
from sourceTable 
where targetTable.CameraID = sourceTable.CameraID;

Если это не так, предоставьте полную информацию о структурах таблиц и текущих данных.

...