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

Oracleで数値を小数点以下2桁にフォーマットする3つの方法

    Oracle Databaseを使用する場合、TO_CHAR(number)などの関数を使用できます。 数値を文字列として返すには、を小数点以下2桁(または必要な小数点以下の桁数)にフォーマットします。

    または、ROUND(number)などの関数を使用できます およびTRUNC(number) 数値を必要な小数点以下の桁数に丸めたり切り捨てたりします。

    TO_CHAR() 機能

    TO_CHAR(number)を使用する例を次に示します。 機能:

    SELECT TO_CHAR(1.2345, 'fm99D00')
    FROM DUAL;

    結果:

    1.23

    この場合、元の数値は小数点以下2桁を超えるため、結果は、小数点以下の指定された数のゼロに切り捨てられます(D )フォーマットモデルで。

    10進文字の後にゼロを使用した理由は、必要に応じて末尾のゼロを提供するためです。

    例:

    SELECT TO_CHAR(7, 'fm99D00')
    FROM DUAL;

    結果:

    7.00

    末尾のゼロが必要ない場合は、0を変更できます 9への文字 s。

    2つの比較は次のとおりです。

    SELECT 
        TO_CHAR(7, 'fm99D00') AS "r1",
        TO_CHAR(7, 'fm99D99') AS "r2"
    FROM DUAL;

    結果:

         r1    r2 
    _______ _____ 
    7.00    7.   

    9を使用する sこの場合、基数文字になりますが、小数点以下の桁数はありません。

    fmを指摘する必要があります 結果に適用される可能性のあるパディングを削除するフォーマット修飾子です。結果が埋め込まれることを気にしない場合は、これを省略できます。ただし、これを行うと、9を使用している場合でも、末尾にゼロが表示される可能性があります。 フォーマット要素。

    fmを削除するとどうなりますか 前の例から:

    SELECT 
        TO_CHAR(7, '99D00') AS "r1",
        TO_CHAR(7, '99D99') AS "r2"
    FROM DUAL;

    結果:

           r1        r2 
    _________ _________ 
      7.00      7.00   

    もちろん、小数点以下2桁に制限されているわけではありません。必要に応じて、フォーマットモデルで小数点以下の桁数を増やすことができます。

    例:

    SELECT TO_CHAR(7, 'fm99D0000')
    FROM DUAL;

    結果:

    7.0000

    ROUND() 機能

    ROUND(number)を使用する例を次に示します。 機能:

    SELECT ROUND(1.2573, 2)
    FROM DUAL;

    結果:

    1.26

    T 彼はROUND() 関数は、数値を指定された小数点以下の桁数に丸めます。ここでは、小数点以下2桁を指定しましたが、任意の数値を指定できます。

    この場合、数値は切り上げられました。

    TRUNC() 機能

    TRUNC(number)を使用する例を次に示します。 機能:

    SELECT TRUNC(1.2573, 2)
    FROM DUAL;

    結果:

    1.25

    TRUNC() 関数は、数値を指定された小数点以下の桁数に切り捨てます。丸めは発生しません。


    1. OracleのALL_TAB_COLUMNSテーブルのBIN$...テーブルとは何ですか?

    2. CentOS 7 /RHEL7にMariaDBをインストールする方法

    3. PostgreSQLクラウドベンダーロックインを回避する方法

    4. null許容列でのハッシュ結合