2009-09-07 61 views
18

我正在運行需要將值四捨五入到最近整數的SQL。在SQL UPDATE中將值舍入到最接近的整數

我需要的是45.01輪到46輪也是45.49輪到46輪也是45.99輪到46輪。我希望所有的東西都有一個整數。

如何在像下面這樣的UPDATE語句中實現這一點?

Update product SET price=Round 

回答

23

您可以使用ceil功能,至少在MySQL的;這部分SQL代碼:

select ceil(45.01), ceil(45.49), ceil(45.99); 

每次都會得到你「46」。

爲了您的更新,所以,我會說:

Update product SET price = ceil(45.01) 


BTW:在MySQL中,ceil是一個別名ceiling;不知道其他數據庫系統,所以你可能需要使用一個或另一個,這取決於你使用的是DB ...


引用文檔:

CEILING(X)

返回的最小整數值不大於 X.

而給出的例子中更小:

mysql> SELECT CEILING(1.23); 
     -> 2 
mysql> SELECT CEILING(-1.23); 
     -> -1 
2

這取決於數據庫服務器,但它通常被稱爲類似CEILCEILING。例如,在MySQL的

mysql> select ceil(10.5); 
+------------+ 
| ceil(10.5) | 
+------------+ 
|   11 | 
+------------+ 

然後,您可以做UPDATE PRODUCT SET price=CEIL(some_other_field);

+0

歡迎來到stackoverflow!任何縮進的四個空格都被格式化爲代碼,您可以使用二進制數字的按鈕在編輯器中執行此操作。希望你不介意我修復你的答案來做到這一點! – 2009-09-07 11:16:07

3

如果你想四捨五入然後用圓功能。當你想獲得比你的參數更大的最小整數時,使用上限函數。

對於例如:選擇圓(843.4923423423,0)從雙爲您提供了843和

選擇輪(843.6923423423,0)從 雙給你844

+0

如果你只想收集最近的一分錢,該怎麼辦?如果應納稅額爲13.052美元,我需要將這一數額調高至13.053美元。我可以使用天花板(),但我必須首先乘以100,然後除以100.似乎是跛腳。 – datagod 2011-09-23 14:48:12

4

對於MS SQL天花板(你的號碼)將圍繞它。 FLOOR(您的號碼)會將其圓整下來

3

天花板是您要使用的命令。

與圓形不同,天花板只需要一個參數(您希望四捨五入的值),因此如果要舍入到小數點位置,則需要先將該數字乘以多個小數位,然後再進行除法。

例子。

我想把1.2345湊到2位小數。

CEILING(1.2345*100)/100 AS Cost 
相關問題