【问题标题】:Data Conversion in SQL Server 2008SQL 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,非常感谢。你救了我的一天! :)

标签: sql sql-server-2008


【解决方案1】:

两种列数据类型必须相同或转换为相同类型。

select (a.AdmissionNo + ' - ' + CAST(a.BatchID as nvarchar) ) as RollNo

注意:

所有int 数据类型值都可以转换为varchar / nvarchar,但反之则不行。 所以将 int 列转换为 varchar/nvarchar 更安全

【讨论】:

  • 您能详细说明一下吗?我对 SQL 有点陌生。
  • 现在检查,我假设 batchID 是 int 类型
  • 嗨,现在知道了。非常感谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2016-04-11
  • 1970-01-01
相关资源
最近更新 更多