我正要通過questionSQL給人Erroreneous結果
於是,我就計算它自己和檢查結果.. 但總是結果我得到的是一個圓形的值。爲什麼?
其實我應該得到0.1428 ......
@Everyone誰回答:謝謝大家,按照SO規則我能接受的答案只有一個,所以接受最早的那個人。
我正要通過questionSQL給人Erroreneous結果
於是,我就計算它自己和檢查結果.. 但總是結果我得到的是一個圓形的值。爲什麼?
其實我應該得到0.1428 ......
@Everyone誰回答:謝謝大家,按照SO規則我能接受的答案只有一個,所以接受最早的那個人。
嘗試
select 2.0/14
如果您使用整數結果將是整過。整數並不浮點數
整數除法2/14
的結果始終爲0
嘗試2.0/14.0
代替。
你在做integer division。
至少有一個操作數需要是浮點/小數才能使整個表達式評估爲其中一種類型。
試試這個:
declare @a float
set @a = 2.0/14.0
select [email protected]
當然,這是唯一的*隱含位*所有的答案是, ,當SQL Server正在評估一個操作時,它只考慮該操作涉及的數據類型。它不會評估將接收計算結果的變量/列的類型。 (這似乎部分是你期望的) – 2012-04-19 12:28:20
@Damien_The_Unbeliever:顯式語句 - 「該操作中涉及的數據類型」和「它不評估將接收該計算結果的變量/列的類型「。更有意義!謝謝 – Marshal 2012-04-19 12:31:27