Не допускается назначение переменных в операторе, содержащем оператор UNION верхнего уровня - PullRequest
0 голосов
/ 07 мая 2019

У меня две очень похожие таблицы, и я получаю эту ошибку при выполнении следующего запроса:

Не допускается присвоение переменной в операторе, содержащем оператор UNION, INTERSECT или EXCEPT верхнего уровня

Скажите, пожалуйста, как я могу это исправить?

SELECT @EID = [EId] 
FROM  [HR].[E]
WHERE @LName = ltrim(rtrim([LName]))
UNION
SELECT @EID = [EId]
FROM  [HR].[EArchive]
WHERE @LName = ltrim(rtrim([LName]))

1 Ответ

1 голос
/ 07 мая 2019

Без понимания чего-либо еще, что вы делаете, или беспокойства о множественных попаданиях и т. Д., Запрос может быть:

SELECT @EID = [EId] from (
  select Eid 
  FROM  [HR].[E]
  WHERE @LName = ltrim(rtrim([LName]))
UNION
  SELECT [EId]
  FROM  [HR].[EArchive]
  WHERE @LName = ltrim(rtrim([LName]))
) q
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...