Please keep in mind that there is a data type precedence in T-SQL:
When an operator combines expressions of different data types, the data type with the lower precedence is first converted to the data type with the higher precedence. If the conversion isn't a supported implicit conversion, an error is returned.
In your case int has the number 16 and char the number 28. So char is converted to int. You will get an error if this is not possible.
You have to cast the int to char before or use two int values.
Create table #tbl_Prd (ID int,QTY int); insert into #tbl_Prd values(1,2222), (2,2223), (3,NULL); select ID, isnull(cast(QTY as varchar(6)),'N/A') QTY from #tbl_Prd; select ID, isnull(QTY,-1) QTY from #tbl_Prd; go Drop table #tbl_Prd;