在SQL中连接int和nvarchar列

时间:2012-11-15 11:55:56

标签: sql-server-2008 tsql

我正在使用MSSQL EXPRESS 2008,我正在尝试使用以下查询将记录的ID列与其描述列连接起来

SELECT CAST(GotoviProizvodi.ID as nvarchar(4)) + ' - ' + CAST(GotoviProizvodi.Opis as nvarchar(max)) AS Opis 
FROM GotoviProizvodi,Recept 
WHERE Recept.ID=@ID 
  AND Recept.Proizvod=GotoviProizvodi.Opis

GotoviProizvodi.ID is defined in the schema as int   -- the ID column
GotoviProizvodi.Opis is defined as nvarchar(200)   -- the description column

但是,当我尝试执行查询时,它产生了这个:

  

Msg 245,Level 16,State 1,Procedure GetProizvodByReceptId,Line 2   将nvarchar值'Test'转换为数据类型int时,转换失败。

当我明确告诉它将其转换为nvarchar时,为什么要尝试将其转换为int?任何解决方法?

2 个答案:

答案 0 :(得分:4)

你确定错误与演员表有关而不是在哪里? 检查列类型是否匹配

答案 1 :(得分:2)

我认为这样做:

SELECT (CONVERT(NVARCHAR, GotoviProizvodi.ID) + ' - ' + GotoviProizvodi.Opis) AS Opis 
FROM GotoviProizvodi,Recept 
WHERE Recept.ID=@ID 
  AND Recept.Proizvod=GotoviProizvodi.Opis