
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
还是不行
我不懂了 ,求大大神 展开
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
还是不行
我不懂了 ,求大大神 展开
展开全部
首先,你要明白sum函数的意义,它是对数值进行求和,所以调用时它的参数必须要为数值类型的。
而在你的查询SQL语句中,你使用了t2.ssc_comment字段,但是该字段为一个字串型,而且其字段不能有效转换成一个数值,如"测试AA",那么在执行时,程序会试图将"测试AA"转成数值,结果当然是发生异常了。
所以,你究竟想对什么内容进行求和统计?
而在你的查询SQL语句中,你使用了t2.ssc_comment字段,但是该字段为一个字串型,而且其字段不能有效转换成一个数值,如"测试AA",那么在执行时,程序会试图将"测试AA"转成数值,结果当然是发生异常了。
所以,你究竟想对什么内容进行求和统计?
追问
我忘记了这里也是个原因 我试试先
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询