读书人

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

发布时间: 2012-02-11 09:51:35 作者: rapoo

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

读书人网 >SQL Server

热点推荐