转换varchar值时转换失败':'到数据类型int

时间:2016-09-22 09:11:55

标签: sql sql-server-2008

我不明白我在这里做错了什么

Test

Id  |   Roll    |   
-------------------------   
1   |   145 |   


select Id + ':' + roll from test

2 个答案:

答案 0 :(得分:2)

这已在评论中得到解答,但为了完成,您可以在下面进行

select cast(Id as varchar(1)) + ':' + cast(roll  as varchar(10)) from test

答案 1 :(得分:1)

为了完整起见:

使用SQL Server 2012及更高版本的用户可以使用CONCAT来实现相同目标,而无需进行任何明确的转换。

SELECT CONCAT(15, ':', 10);

也会导致:

15:10

作为额外的奖励,CONCAT将原生处理任何NULL值,而不是完全杀死您的结果。

SELECT CONCAT('Oh snap, there might be a NULL value', NULL, ' somewhere in here!', 11, '!!');

结果:

Oh snap, there might be a NULL value somewhere in here!11!!