将varchar值'DEPARTM'转换为数据类型int时转换失败

时间:2019-07-15 16:57:05

标签: sql sql-server ssms

我有几列试图将来自两个不同表的两列加在一起。错误如下

Conversion failed when converting the varchar value 'DEPARTM' to data type int.

当我检查两个表中的两个列时,两个表中的两个列中的DEPARTM归档文件都是一样的,就像结果应该是departm-departm一样。 由于第一个表cdm具有列为数字和名称的列,而cc表包含所有描述,但是,在喘息时,它在两列中均列为名称。所以我希望它不会转换。

  select 
     a.VisitID
,a.BarStatementID
,cdm.Subcategory as CodeTxn
,'CHARGE SUMMARY BY REVENUE CODE' as Code
    ,cdm.Subcategory + ' - ' + cc.SubcategoryDescription as CodeDesc

结果应类似于

0553 - Takehome Supply
0555 - Trauma Level II
0440 - Audiology
0664 - BH/Indiv Rx
0773 - BH/Partial Intensv
0120 - EEG
DEPARTM-DEPARTM

1 个答案:

答案 0 :(得分:1)

+重载表示加法和字符串连接。最简单的解决方案是使用CONCAT()函数:

CONCAT(cdm.Subcategory, ' - ',  cc.SubcategoryDescription) as CodeDesc

如果您想要前导零,请使用FORMAT()

CONCAT(FORMAT(cdm.Subcategory, '0000'), ' - ',  cc.SubcategoryDescription) as CodeDesc