2012-04-19 23 views
2

我正要通過questionSQL給人Erroreneous結果

於是,我就計算它自己和檢查結果.. 但總是結果我得到的是一個圓形的值。爲什麼?

其實我應該得到0.1428 ......

enter image description here

@Everyone誰回答:謝謝大家,按照SO規則我能接受的答案只有一個,所以接受最早的那個人。

+0

當然,這是唯一的*隱含位*所有的答案是, ,當SQL Server正在評估一個操作時,它只考慮該操作涉及的數據類型。它不會評估將接收計算結果的變量/列的類型。 (這似乎部分是你期望的) – 2012-04-19 12:28:20

+0

@Damien_The_Unbeliever:顯式語句 - 「該操作中涉及的數據類型」和「它不評估將接收該計算結果的變量/列的類型「。更有意義!謝謝 – Marshal 2012-04-19 12:31:27

回答

3

嘗試

select 2.0/14 

如果您使用整數結果將是整過。整數並不浮點數

2

整數除法2/14的結果始終爲0

嘗試2.0/14.0代替。

2

你在做integer division

至少有一個操作數需要是浮點/小數才能使整個表達式評估爲其中一種類型。

2

SELECT 2.0/14

需要小數位「觸發」浮點

+0

5個答案!我需要鍵入更快:( – Paddy 2012-04-19 12:15:34