Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Concatenating int and nvarchar column in TSQL

I'm using MSSQL EXPRESS 2008 and I'm trying to concatenate the record's ID column with it's description column using the following query

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

But, when I try to execute the query it yields this:

Msg 245, Level 16, State 1, Procedure GetProizvodByReceptId, Line 2 Conversion failed when converting the nvarchar value 'Test' to data type int.

Why is it trying to convert it into int, when I'm explicitly telling it to convert it into nvarchar? Any workarounds?

like image 347
Kiro Coneski Avatar asked Jan 15 '23 00:01

Kiro Coneski


2 Answers

are you sure the error is related to the casts and not to the where conditions? check that the column types are matching

like image 199
fnurglewitz Avatar answered Jan 28 '23 02:01

fnurglewitz


i think this'll do :

SELECT (CONVERT(NVARCHAR, GotoviProizvodi.ID) + ' - ' + GotoviProizvodi.Opis) AS Opis 
FROM GotoviProizvodi,Recept 
WHERE Recept.ID=@ID 
  AND Recept.Proizvod=GotoviProizvodi.Opis
like image 43
armen Avatar answered Jan 28 '23 01:01

armen