Как я могу преобразовать значение nvarchar в тип данных int - PullRequest
0 голосов
/ 22 декабря 2011
WITH FirstQuery AS (
  select i.id, o.[name]  from Item i
  LEFT OUTER JOIN sys.objects o on o.[name]='I' + cast(i.id as nvarchar(20))
  where o.name is not null
)
select PriceListItem.ProductExternalId,
       FQ.Id,   [PriceListItem].[ProductExternalDesc]
from FirstQuery FQ
     inner join [Product] on Product.ItemId = FQ.name
                         and Product.InstanceId = FQ.ID
     inner join [PriceListItem]  on Product.ID = PriceListItem.ProductId;

Имеется ошибка:

Преобразование не удалось при преобразовании значения nvarchar 'I451' в данные введите int.

Ответы [ 2 ]

2 голосов
/ 22 декабря 2011

Итак ... Похоже, вы пытаетесь присоединиться к Product.ItemID (int) = FQ.name (varchar).

Почему вы думаете, что это сработает?

Примеры данных могут помочь людям понять, кто выпытаясь сделать и как вы должны это сделать.

0 голосов
/ 23 декабря 2011

Если вы все еще хотите присоединиться к этим двум столбцам и хотите, чтобы они не совпадали, если это недопустимый тип int, возможно, сделайте это наоборот.Приведите Product.ItemID к varchar:

inner join [Product] on cast(Product.ItemID as varchar) = FQ.name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...