SQL出现将 varchar 值 '测试AA' 转换为数据类型为 int 的列时发生语法错误

如标题,sql语句如下selectt1.sub_dh,sum(casewhent2.sSC_Code='r14'thent2.sSC_Commentelse0end)as... 如标题,sql语句如下
select t1.sub_dh,
sum(case when t2.sSC_Code='r14' then t2.sSC_Comment else 0 end) as srr14
FROM dbo.A as t1

left join dbo.B as t2 on t2.sub_dh=t1.sub_dh
在表B中,ssc_COMMENT是varchar的格式,会出现文本形式,汉字等,一旦执行这句话,就出现如题的错误了,怎么弄?我改成
select t1.sub_dh,
sum(case when t2.sSC_Code='r14' then convert(int,t2.sSC_Comment) else 0 end) as srr14
FROM dbo.A as t1

left join dbo.B as t2 on t2.sub_dh=t1.sub_dh
还是不行
我不懂了 ,求大大神
展开
 我来答
Andy_Sun321
2016-05-06 · TA获得超过1376个赞
知道小有建树答主
回答量:811
采纳率:89%
帮助的人:728万
展开全部
首先,你要明白sum函数的意义,它是对数值进行求和,所以调用时它的参数必须要为数值类型的。
而在你的查询SQL语句中,你使用了t2.ssc_comment字段,但是该字段为一个字串型,而且其字段不能有效转换成一个数值,如"测试AA",那么在执行时,程序会试图将"测试AA"转成数值,结果当然是发生异常了。
所以,你究竟想对什么内容进行求和统计?
追问
我忘记了这里也是个原因 我试试先
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式