将百分比字段转换为浮点时获得错误的结果

时间:2014-04-21 21:54:22

标签: sql sql-server casting

我的查询应根据特定条件显示一些数据。

显示数据时,我的查询中包含以下条件:

cast(percentage as float)/100 < 0.50)这应该给我的价值低于50%。

然而,当执行查询时,它给出了像95,100这样的值...但是从不给我小于0.50,即使我在查询中指定了条件。

当从表中进行单一选择以检查那里有什么值时,我得到0.95:

select cast(percentage as float)/100 from table1 where id ='1111'

我做错了什么?什么是解决方案?


这是我的where条款:

WHERE msystem = '111'
AND (
     (code = '2222' AND cast(percentage as float)/100 < 0.50)
     OR   (code = '3333')
     )

1 个答案:

答案 0 :(得分:0)

这段代码:

(code = '2222' AND cast(percentage as float)/100 < 0.50)
     OR   (code = '3333')

第二段 OR(代码=&#39; 3333&#39;)允许大于0.50的结果

您现在编写where子句的方式会向您显示任何包含代码=&#39; 3333&#39;并且只有代码=&#39; 2222&#39;小于0.50