当前位置: 代码迷 >> Sql Server >> 为什么这句查询不行?解决思路
  详细解决方案

为什么这句查询不行?解决思路

热度:33   发布时间:2016-04-27 16:12:55.0
为什么这句查询不行?
有张表a,数据如下:
    s                   b
    50               69
    260             295

要求是b字段比s字段多60%的列出来
select   *   from   a   where   b> s*(1+0.6)

但如果用下面的为什么不行?

select   *   from   a   where   b> s*(1+60/100)

------解决方案--------------------
因为两个整数的商依然是一个整数, 60/100 得到的结果是一个整数,即0。

改成这样:60.0/100


------解决方案--------------------
select * from a where b> s*(1+60.0/100.0)

------解决方案--------------------
上面错了

一楼正解,如果你想两个整数相除留小数位,把除数和被除数中一个转换为float型或其他浮点类型;例如:
select * from a where b> s*(1+(cast 60 as float)/100)
  相关解决方案