簡體   English   中英

如何根據小數舍入一個數字? (SQL)

[英]How to round a number based on the decimal? (SQL)

大家好,我的問題是這樣的:

我有一條規則可以驗證一個數字是否大於或等於.3,我將四舍五入到下一個數字並添加另一個。 例:

1000.3 = 1001 + 1 = 1002

如果數字小於.3我將僅添加一個:

1000.2 = 1001

我一直在尋找某種SQL命令,但是我沒有運氣。 希望你能幫助我。

謝謝! 羅阿

您可以使用類似:

SELECT CASE WHEN (Number - FLOOR(Number)) >= .3 
            THEN (CEILING(Number)+1)
            ELSE CEILING(Number)
       END AS NextNumber

我最初寫道這是ANSI,但事實並非如此。 但是,SQL Server和MySQL都支持%運算符。

DECLARE @one DECIMAL(10, 1) = 1000.3

 SELECT  CASE WHEN @one % CAST(@one AS INT) >= 0.3 THEN CAST(@one as INT) + 1
    ELSE CAST(@one as INT) + 2 END
SELECT ROUND(15.193,-1) "Round" FROM DUAL;

     Round
----------
        20 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM