2012-02-25 48 views
3

查詢如何得到確切的總

Select 9/5「顯示輸出1

我想要得到9/5

預計確切的輸出中輸出繼電器

1.8 instead of 1 

如何查詢

+0

使用(浮動)投!它在C++中工作:D – Ocelot 2012-02-25 09:41:50

回答

5

問題是它在做整數運算。您可以通過添加.0明確地把它們當作十進制數:

SELECT 9.0/5.0 

您還可以使用轉換或強制轉換爲更加明確:

SELECT CONVERT(DECIMAL(9,4), 9)/CONVERT(DECIMAL(9,4), 5) 

注意:如果兩個操作數是十進制數,結果將是一個十進制數,所以你在技術上只需要轉換其中的一個。因此,任何這些也將工作:

SELECT 9/5.0 
SELECT 9.0/5 
SELECT CONVERT(DECIMAL(9,4), 9)/5 
SELECT 9/CONVERT(DECIMAL(9,4), 5) 

它的工作原理,這是的原因是因爲ANSI/ISO-SQL標準實際上是說,數學運算的結果必須是相同的數據類型作爲一個操作數。因此,如果兩個操作數都是整數,則根據ANSI/ISO-SQL標準的結果也必須是整數。

MySQL違反這裏的標準(大概是爲了實用性),但MS SQL符合它。

0

我沒有訪問sql-server,並且mysql似乎給出了正確的答案。然而,我試着強制一個或兩個參數是浮動(即SELECT 9.0 /5.0)

相關問題