SQL Server 2008 中的数据转换
Posted
技术标签:
【中文标题】SQL Server 2008 中的数据转换【英文标题】:Data Conversion in SQL Server 2008 【发布时间】:2013-09-24 05:19:31 【问题描述】:我需要连接 2 列并在我的存储过程中显示为单个字段。
Column Batch - int
Column AdmissionNo - nvarchar
我试过这样查询
select (a.AdmissionNo + ' - ' + a.BatchID) as RollNo
但我收到以下错误
消息 245,级别 16,状态 1,程序 usp_GetAdmittedStudents,第 7 行 将 nvarchar 值 '13-01 - ' 转换为数据类型 int 时转换失败。
我错过了什么?
【问题讨论】:
@User814064,非常感谢。你救了我的一天! :) 【参考方案1】:两种列数据类型必须相同或转换为相同类型。
select (a.AdmissionNo + ' - ' + CAST(a.BatchID as nvarchar) ) as RollNo
注意:
所有int
数据类型值都可以转换为varchar / nvarchar
,但反之则不行。
所以将 int 列转换为 varchar/nvarchar 更安全
【讨论】:
您能详细说明一下吗?我对 SQL 有点陌生。 现在检查,我假设 batchID 是 int 类型 嗨,现在知道了。非常感谢:)以上是关于SQL Server 2008 中的数据转换的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server 2008转换成sql 2000数据库如何操作?
也谈SQL Server 2008 处理隐式数据类型转换在运行计划中的增强
也谈SQL Server 2008 处理隐式数据类型转换在运行计划中的增强 (续)