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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,因此一定要对两组数值都进行转换,就可以了。

参考技术A 将int类型转换为varchar ,如cast(1 as varchar(10)),再进行连接
set @sql =@sql+'update User set Medal='+@count+' where ID='+cast(@ID as varchar(10))+';'本回答被提问者采纳

以上是关于Sqlserver的int和varchar类型拼接的问题的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver 2008 字符串和int拼接

sql查询中字符串拼接的问题

为啥从sqlserver里读出的字符串末尾含空格?

oracle 字符串拼接慢不慢

在将 varchar 值 'xiaoming' 转换成数据类型 int 时失败。

sql 注意点