2010-01-08 117 views
1

我有我的選擇條款:SQL服務器演四捨五入

AVG (cast(scale as decimal(5,2))) 

我不斷收到一些像:0.6523412897,沒事我似乎得到我想要的我:0.65。 基本上我想有一個2(小數點後兩位)的比例。 感謝

回答

1

嘗試

ROUND(AVG(scale), 2) 
+0

現在我有:圓(AVG(CAST(規模爲十進制)),2),我結果是1.95000 .....我如何擺脫尾隨零,所以我只得到1.95? – bmw0128 2010-01-08 22:08:03

8

演員平均,不平均投:

cast(AVG(scale) as decimal(5,2)) 

更新

使用ROUND()改變不是值的類型。例如。 select round(0.12345,2)返回0.12000,因爲它應該將0.12345修改爲0.12,但在原點後保留原始類型後有5位小數,因此爲0.12000。要改變類型,必須使用強制類型,就像在我的文章中一樣。

+0

如果我改爲:cast(AVG(scale)爲十進制(5,2)),我失去了精度,因爲我平均的數字是整數,所以結果是1.00,2.00等。 – bmw0128 2010-01-08 22:26:30

+0

想通了(AVG)(作爲十進制(5,2))的小數點(5,2)))作爲[AVG] – bmw0128 2010-01-08 22:33:15

0

這取決於你所使用的數據庫,但是反過來是SQL Server的答案:

ROUND