Ошибка возникает из-за приоритета типа данных : nvarchar будет преобразован в int.
Он либо на EmailPromotion
, либо CustomerID
, поэтому решите, какую строку вы хотите расположить ниже.Кроме того, нет необходимости использовать встроенный запрос.
select
si.CustomerID,
'myField' = ISNULL(FirstName + ' ' +
LastName + ' ' +
Cast(EmailPromotion AS nvarchar(100))
-- EmailPromotion ?
, '')
from
Sales.Individual si
LEFT JOIN
Person.Contact pc ON si.ContactID = pc.contactid
where
si.CustomerID = N'11000'
-- si.CustomerID = 11000 ?
TOP без ORDER BY не имеет смысла, поэтому, если у вас есть несколько строк в Person.Contact
для каждой строки в Sales.Individual
, вам понадобится другая конструкция...