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中的怎么把数值型转换为字符串

也谈SQL Server 2008 处理隐式数据类型转换在运行计划中的增强

也谈SQL Server 2008 处理隐式数据类型转换在运行计划中的增强 (续)

也谈SQL Server 2008 处理隐式数据类型转换在运行计划中的增强 (续)

Sql server2012转sql server2008步骤经验总结(转)