2012-03-21 75 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