Sqlserver的int和varchar类型拼接的问题

declare @ID bigint
declare @count bigint
declare @sql varchar(max)
set @sql=''
set @ID=1
set @count=10
set @sql =@sql+'update User set Medal='+@count+' where ID=@'+@ID+';'
主要是最后一句话
我想问的是 在Sqlserver里 想拼接int和varchar怎么办
亲们 回答下把

1、首先在数据表Table_1中有两列类型为数值的列num1和num2,类型分别为int和float。数据如图所示。

2、采用convert或cast函数进行数据类型转换,然后再使用“+”进行字符拼接。转换之后的类型可以是:char、nchar、varchar、nvarchar等。

3、convert函数的格式为:convert(varchar(20),num1)其中varchar为可变长度的字符串,20为字符串的最大长度,使用varchar的好处是可以避免结果中出现空格。如果需要空格,则可以考虑使用char。下图为以下查询结果。

4、cast函数的格式为:cast(num1 as varchar(20))关于数据格式参见上一步的说明。下图为以下查询结果。

5、1和2的结果完全相同。这里说明由于对varchar和int使用“+”运算符时,会自动转换varchar为int,因此一定要对两组数值都进行转换,就可以了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-02
将int类型转换为varchar ,如cast(1 as varchar(10)),再进行连接
set @sql =@sql+'update User set Medal='+@count+' where ID='+cast(@ID as varchar(10))+';'本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网