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

declare@IDbigintdeclare@countbigintdeclare@sqlvarchar(max)set@sql=''set@ID=1set@count... 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怎么办
亲们 回答下把
展开
 我来答
帐号已注销
高粉答主

2020-04-02 · 每个回答都超有意思的
知道答主
回答量:2169
采纳率:0%
帮助的人:35.3万
展开全部

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,因此一定要对两组数值都进行转换,就可以了。

yyfromcn
推荐于2017-09-02 · 超过26用户采纳过TA的回答
知道答主
回答量:60
采纳率:100%
帮助的人:42.2万
展开全部
将int类型转换为varchar ,如cast(1 as varchar(10)),再进行连接
set @sql =@sql+'update User set Medal='+@count+' where ID='+cast(@ID as varchar(10))+';'
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式