sqlserver2008中的数据转换
我需要连接两列并在存储过程中显示为单个字段sqlserver2008中的数据转换,sql,sql-server-2008,Sql,Sql Server 2008,我需要连接两列并在存储过程中显示为单个字段 Column Batch - int Column AdmissionNo - nvarchar 我试着这样问 select (a.AdmissionNo + ' - ' + a.BatchID) as RollNo 但是我得到了以下错误 Msg 245,16级,州1,程序usp_GetReceignedStudents,第7行 将nvarchar值“13-01-”转换为数据类型int时,转换失败 我缺少什么?两个列数据类型必须相同或强制转换为相
Column Batch - int
Column AdmissionNo - nvarchar
我试着这样问
select (a.AdmissionNo + ' - ' + a.BatchID) as RollNo
但是我得到了以下错误
Msg 245,16级,州1,程序usp_GetReceignedStudents,第7行将nvarchar值“13-01-”转换为数据类型int时,转换失败
我缺少什么?两个列数据类型必须相同或强制转换为相同的类型
select (a.AdmissionNo + ' - ' + CAST(a.BatchID as nvarchar) ) as RollNo
注意:
所有int
数据类型值都可以强制转换为varchar/nvarchar
,但反之亦然。
所以将int列强制转换为varchar/nvarchar更安全,您能详细说明一下吗?我对SQL有点陌生。现在检查一下,我假设batchID是intHi类型的,明白了。非常感谢:)@User814064,非常感谢。你救了我一天!:)