Подзапрос возвратил более 1 значения, не допускается, когда подзапрос используется в качестве выражения - PullRequest
0 голосов
/ 24 апреля 2019

Моя цель - взять данные из одной таблицы и обновить их в другой таблице. Я делаю явное соединение и запускаю запрос ниже.

UPDATE [Users] set
  name = (
    SELECT concat(Column1,' ',Column2) 
    from [Table2] 
    inner join [Users] on Name = Column3
    where Name like 'ABC'
  )

Я получаю следующую ошибку при выполнении вышеуказанного запроса:

Сообщение 512, Уровень 16, Состояние 1, Строка 45
Подзапрос вернул более 1 значения. Это недопустимо, если подзапрос следует =,! =, <, <=,>,> = Или когда подзапрос используется в качестве выражения.

Обратите внимание, что столбец 1, столбец 2, столбец 3 являются уникальными для таблицы 2, поэтому я не добавил квалификатор.

1 Ответ

1 голос
/ 24 апреля 2019

Вы можете попробовать использовать UPDATE... JOIN

UPDATE  t1 set
  name = concat(Column1,' ',Column2) 
FROM [Users] t1 JOIN [Table2] on Name = Column3
where Name like 'ABC' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...