首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-04-14 
三个字段的和 与另一个字段比较,如何处理?select*fromSC010200where(SC01010+SC01011+SC01012)!SC01053这

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

热点排行