将 varchar 值 '%' 转换为数据类型为 int 的列时发生语法错误。

findm827 2008-10-29 11:14:22
UPDATE t_re
SET 回复率=(SELECT count(ToID)
FROM Personal_SMSUP
WHERE FromID=t_re.te_id)/(SELECT count(FromID)
FROM Personal_SMSDOWN
WHERE ToID=t_re.te_id)*100+'%'

回复率 是varchar类型的

请前辈解答
...全文
98 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
findm827 2008-10-29
  • 打赏
  • 举报
回复
UPDATE t_re
SET 回复率=cast((SELECT count(ToID)
FROM Personal_SMSUP
WHERE FromID=t_re.te_id)/(SELECT count(FromID)
FROM Personal_SMSDOWN
WHERE ToID=t_re.te_id)*100 as varchar)+'%'



如果出现了为0的数据 语句会终止 怎样写一下 避免语句终止的发生 继续计算下一行呢????
findm827 2008-10-29
  • 打赏
  • 举报
回复
各位问下两种方式的不同么????
utpcb 2008-10-29
  • 打赏
  • 举报
回复
都是牛牛
csdyyr 2008-10-29
  • 打赏
  • 举报
回复

UPDATE t_re
SET 回复率=rtrim((SELECT count(ToID)
FROM Personal_SMSUP
WHERE FromID=t_re.te_id)/(SELECT count(FromID)
FROM Personal_SMSDOWN
WHERE ToID=t_re.te_id)*100)+'%'
子陌红尘 2008-10-29
  • 打赏
  • 举报
回复
UPDATE t_re 
SET 回复率=rtrim((SELECT count(ToID)
FROM Personal_SMSUP
WHERE FromID=t_re.te_id)/(SELECT count(FromID)
FROM Personal_SMSDOWN
WHERE ToID=t_re.te_id)*100)+'%'
Yang_ 2008-10-29
  • 打赏
  • 举报
回复

UPDATE t_re 
SET 回复率=cast((SELECT count(ToID)
FROM Personal_SMSUP
WHERE FromID=t_re.te_id)/(SELECT count(FromID)
FROM Personal_SMSDOWN
WHERE ToID=t_re.te_id)*100 as varchar)+'%'

dawugui 2008-10-29
  • 打赏
  • 举报
回复
UPDATE t_re 
SET 回复率=cast((SELECT count(ToID)
FROM Personal_SMSUP
WHERE FromID=t_re.te_id)/(SELECT count(FromID)
FROM Personal_SMSDOWN
WHERE ToID=t_re.te_id)*100 as varchar)+'%'
linguojin11 2008-10-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 findm827 的回复:]
各位问下两种方式的不同么????
[/Quote]
目标是一样的,将INT转为VARCHAR,如果不转的话就会出现你上面的错误
findm827 2008-10-29
  • 打赏
  • 举报
回复
大大们回下头~~~~

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧