当我运行查询时:
select (100/50)
它给了我2 - 好。
但是当我运行查询时:
select (50/100)
我原本以为它会给我0.5 ......但它给了我0呢?为什么?我怎样才能得到0.5?
select (25/(30))*100
我原本以为它会给我83.33,但它也给了0?
答案 0 :(得分:9)
当你除去两个整数时,结果也是一个整数,所以50/100是0.5,这是一个0的整数。
要获得小数点,请写:
Select 50.0 / 100
或将小数点后的整数 - 即。
SELECT (CAST(20 AS DECIMAL(5,1))/30)
答案 1 :(得分:2)
试试这个:
select (50/100.0)
如果结果小于1,则使用整数进行除法将导致零,因为integer
值只能是整数。
0.99
会产生较低的值= 0
3.876
将导致3
,依此类推。
使用decimal
变量来获得所需的结果。您可以使用数字.
<{1}}轻松完成此操作:100.0
答案 2 :(得分:1)
SQL Server将您的数字视为int并给出int结果。
尝试
select 100.0/50
select (25.0/(30))*100