为什么这句查询不行?
有张表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)