各位朋友:查询分析器的语句如下:select *, case when isnull(pgbs,0)-isnull(skss,0)<=0 then 0 else cast(cast((isnull((cast( (round((isnull(pgbs,0)-isnull(skss,0))/isnull(skss,1),4)) as numeric(10,2))),0)*100) as numeric(10,2) ) as varchar(100)) + '%' end ca from zzb 提示错误如下:
服务器: 消息 245,级别 16,状态 1,行 1
将 varchar 值 '14.00%' 转换为数据类型为 int 的列时发生语法错误。小弟知道,主要是Else 部分的语句有问题,else语句这样的时候是正常的:
else cast( (round((isnull(pgbs,0)-isnull(skss,0))/isnull(skss,1),4)) as numeric(10,2))请问该如何修改,才可以使这条SQL语句正确,请赐教,谢谢!
服务器: 消息 245,级别 16,状态 1,行 1
将 varchar 值 '14.00%' 转换为数据类型为 int 的列时发生语法错误。小弟知道,主要是Else 部分的语句有问题,else语句这样的时候是正常的:
else cast( (round((isnull(pgbs,0)-isnull(skss,0))/isnull(skss,1),4)) as numeric(10,2))请问该如何修改,才可以使这条SQL语句正确,请赐教,谢谢!
select *, case when isnull(pgbs,0)-isnull(skss,0) <=0 then '0' else cast(cast((isnull((cast( (round((isnull(pgbs,0)-isnull(skss,0))/isnull(skss,1),4)) as numeric(10,2))),0)*100) as numeric(10,2) ) as varchar(100)) + '%' end ca from zzb