2012-03-21 79 views
1

当我运行查询:SQL Server部门查询

select (100/50) 

它给我2 - 不错。

但是当我运行查询:

select (50/100) 

我预计它会给我0.5 ...但它给我0呢?为什么?如何获得0.5?

select (25/(30))*100 

我预计它会给我83.33,但它也给出0而不是?

回答

4

当你把两个整数,结果是一个整数一样,所以50%/ 100 = 0.5,是0

的整数为了得到一个小数点,或者写:

Select 50.0/100 

或铸造OA十进制整数 - 即

SELECT (CAST(20 AS DECIMAL(5,1))/30) 
1

SQL Server将您的数字视为int并给出一个int结果。

尝试

select 100.0/50 

select (25.0/(30))*100 
2

试试这个:

select (50/100.0) 

使用一个整数除法会导致零如果结果小于1,因为integer值只能是圆的数字。

0.99将导致较低的值= 0
3.876将导致3等。

使用decimal变量来获得你想要的结果。您可以轻松地做到这一点通过使用你的号码一个.100.0