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

从数据类型 varchar 转换为 float 时出错,错得莫名其妙解决方法

2012-06-05 
从数据类型 varchar 转换为 float 时出错,错得莫名其妙SQL codeselect *from(select pj.projectNo, cast(v

从数据类型 varchar 转换为 float 时出错,错得莫名其妙

SQL code
        select *        from(            select pj.projectNo, cast(v_feeTypeVer.itemName as float) feeTypeVer            from CommonData.dbo.base_t_project pj                 join CommonData.dbo.base_ref_packageVer_feeTypeVer rpf on rpf.if_packageVerId=pj.if_packageVerId                 join CommonData.dbo.base_v_infoClass v_feeTypeVer on v_feeTypeVer.itemId=rpf.if_feeTypeVerId            where v_feeTypeVer.parentName='短信'        )a        where a.feeTypeVer>=1.3消息 8114,级别 16,状态 5,第 2 行从数据类型 varchar 转换为 float 时出错。


请问这上面的错在哪里了?

[解决办法]
把 where a.feeTypeVer>=1.3 去掉,看看结果集。
[解决办法]
确实看不出有什么错 只能查询处理看一下了
[解决办法]
where a.feeTypeVer>=1.3

如果feeTypeVer里面有字符型的数据,是会报错的。
[解决办法]
SQL code
      select *        from(            select pj.projectNo, cast(v_feeTypeVer.itemName as float) feeTypeVer            from CommonData.dbo.base_t_project pj                 join CommonData.dbo.base_ref_packageVer_feeTypeVer rpf on rpf.if_packageVerId=pj.if_packageVerId                 join CommonData.dbo.base_v_infoClass v_feeTypeVer on v_feeTypeVer.itemId=rpf.if_feeTypeVerId            where v_feeTypeVer.parentName='短信'        )a        where a.feeTypeVer>='1.3'
[解决办法]
SQL code
  select *        from( select pj.projectNo, cast(v_feeTypeVer.itemName as float) --这里有错,八成是你的字符串里面含有非数字字符,比如说123ae.23这样的字符串            feeTypeVer            from CommonData.dbo.base_t_project pj                 join CommonData.dbo.base_ref_packageVer_feeTypeVer rpf on rpf.if_packageVerId=pj.if_packageVerId                 join CommonData.dbo.base_v_infoClass v_feeTypeVer on v_feeTypeVer.itemId=rpf.if_feeTypeVerId            where v_feeTypeVer.parentName='短信'        )a        where a.feeTypeVer>=1.3 

热点排行