读书人

三个字段的和 与另一个字段比较如何

发布时间: 2012-04-14 17:14:21 作者: rapoo

三个字段的和 与另一个字段比较,如何处理?
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
如果你要数字加起来,那就转换成数字类型吧

读书人网 >SQL Server

热点推荐