SQL Server分区查询

时间:2012-03-21 08:08:02

标签: sql-server sql-server-2008

当我运行查询时:

select (100/50)

它给了我2 - 好。

但是当我运行查询时:

select (50/100)

我原本以为它会给我0.5 ......但它给了我0呢?为什么?我怎样才能得到0.5?

select (25/(30))*100

我原本以为它会给我83.33,但它也给了0?

3 个答案:

答案 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