如何将nvarchar值转换为数据类型int ?

本文关键字:数据类型 int 转换 nvarchar | 更新日期: 2023-09-27 18:18:32

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类型。

如何将nvarchar值转换为数据类型int ?

所以…您似乎正在尝试加入Product.ItemID (int) = FQ.name (varchar)

你为什么认为那可行?

样本数据可以帮助人们弄清楚你想要做什么以及你应该如何完成它。

如果您仍然想要连接这两列,并且当它是无效整型时不希望它匹配,则可以使用另一种方法。铸造产品。ItemID到varchar:

inner join [Product] on cast(Product.ItemID as varchar) = FQ.name