三个字段的和 与另一个字段比较,如何处理?
select * from SC010200 where (SC01010+SC01011+SC01012)!=SC01053
这样不行,
提示:Error converting data type nvarchar to numeric.
怎样转换字符类型。。。。如何处理。。谢谢
------解决方案--------------------select * from SC010200 where (cast(SC01010 as varchar)+cast(SC01011 as varchar)+cast(SC01012 as varchar))!=SC01053
------解决方案--------------------我都不知道你需要什么结果,如果你期望三个字段按数值相加的话,你的写法没错,但是某个字段中有非数值格式的记录存在,所以出错。
------解决方案--------------------如果要按数值型比较,那这些字段的值都应该能转换为数值型,才能比较,否则会报错。
检查表中这些字段是否存在不能转换为数值的记录。
------解决方案--------------------用isnumeric()函数判断哪些不能转换为数值型,如:
--不能转换为数值型的记录
select * from 表名
where isnumeric(字段名)=0
------解决方案--------------------从错误来看,以下三个字段并不都是数字
SC01010 SC01011 SC01012
如果你要数字加起来,那就转换成数字类型吧