2017-09-21 7 views
2

こんにちは私の質問はこれです:小数点に基づいて数値を丸める方法は? (SQL)

私は、数値が0.3より大きいか等しいかどうかを検証するルールを持っています。次の数値に丸めてもう1つ追加します。例:私はSQLでのコマンドのいくつかの種類を探している

1000.2 = 1001 

が、私は運がなかった:数が.3未満である

1000.3 = 1001 + 1 = 1002 

場合、私は一つだけを追加します。あなたが私を助けてくれることを願って。

ありがとうございます! RoのA.

+3

RDBMSとは何ですか?おそらく 'ROUND(yourNumber + 1.2,0)'またはそれに類するものです。負の数もありますか?もしそうなら、それらのルールは何ですか? –

答えて

-1
SELECT ROUND(15.193,-1) "Round" FROM DUAL; 

    Round 
---------- 
     20 
+1

20質問のロジックを使用して、15.193に対して望ましい結果ではありません。小数部分が0.3未満であるので16になるので、整数部分に1を加えます。 –

+0

「DUAL」はSQL Serverでは使用できません。 – MKR

+0

@MKR質問は現在SQL Serverにタグ付けされていません。 –

1

あなたはのようなものを使用することができます。

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

私はもともとこれは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 
関連する問題