sql >> データベース >  >> RDS >> Oracle

OracleSQL-ラウンド-ハーフ

    ドキュメントには、使用されているアルゴリズムが示されています。 :

    したがって、ゼロ以外の正のバージョンを変更できます。

    FLOOR(n * POWER(10, integer) + 0.4) * POWER(10, -integer)
                                     ^
    

    例えば固定の丸めの場合、今のところゼロ/負を無視します:

    with t (my_number) as (
      select 3.674 from dual
      union all select 3.675 from dual
      union all select 3.676 from dual
    )
    select my_number,
      floor(my_number * power(10, 2) + 0.4) * power(10, -2) as round_on_number
    from  t;
    
     MY_NUMBER ROUND_ON_NUMBER
    ---------- ---------------
         3.674            3.67
         3.675            3.67
         3.676            3.68
    

    ケース式を介してゼロ/負を含めることができます。または、独自の関数を作成して、より適切に処理します。



    1. MySQL複数のテーブルに挿入しますか? (データベースの正規化?)

    2. Oracleでシーケンスをリセットするにはどうすればよいですか?

    3. PostgreSQL9.3を使用した動的ピボットクエリ

    4. SQLServer結果セットの行を制限する方法