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

Oracleで小数なしで数値をフォーマットする4つの方法

    Oracle Databaseを使用する場合、TO_CHAR(number)などの関数を使用できます。 数値を文字列として返します。これにより、必要に応じて小数点以下の桁数を含めずに、特定の小数点以下の桁数を持つように数値をフォーマットできます。

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

    CAST()もあります データ型を整数としてキャストできる関数。これにより、小数点以下の桁数が効果的に削除されます。

    TO_CHAR() 機能

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

    SELECT TO_CHAR(1234.56, 'fm99G999')
    FROM DUAL;

    結果:

    1,235

    この場合、私のフォーマットモデルは次のもので構成されています:

    • 1つのfm 、これは、結果に追加される可能性のある先頭または末尾のパディング文字を削除するフォーマット修飾子です。
    • 複数の9 各桁を表す文字
    • 1つのG ロケール対応のグループ区切り文字を表す文字

    注意すべき重要な点は、Dを使用しないことです。 format要素。これはフォーマット対応の10進文字です。また、リテラルの10進文字(コンマやピリオドなど)も使用しません。また、10進数がないため、そのような文字の後に数字がないことは明らかです。

    した 10進文字、任意の9 または0 その右側の要素により、小数点以下の桁数が結果に含まれる可能性があります。

    例:

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

    結果:

    7.00

    末尾のゼロを抑制するために、0を変更できます。 9への文字 s。ただし、fmを削除する 修飾子を使用すると、9を使用している場合でも末尾のゼロが表示される可能性があります フォーマット要素。

    これが私が何を意味するかを説明するための比較です:

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

    結果:

         r1    r2        r3 
    _______ _____ _________ 
    7.00    7.      7.00   

    ROUND() 機能

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

    SELECT ROUND(1234.56, 0)
    FROM DUAL;

    結果:

    1235

    ROUND() 関数は、数値を指定された小数点以下の桁数に丸めます。ここでは、小数点以下0桁を指定しました。これにより、数値から小数点以下すべての桁が削除されます。

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

    TRUNC() 機能

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

    SELECT TRUNC(1234.56, 0)
    FROM DUAL;

    結果:

    1234

    TRUNC() 関数は、数値を指定された小数点以下の桁数に切り捨てます。丸めは発生しません。したがって、この数値は四捨五入せずに小数点以下0桁に切り捨てられました。

    CAST() 機能

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

    SELECT CAST(1234.56 AS INT) 
    FROM DUAL;

    結果:

    1235

    CAST() 関数は、引数を別のデータ型に変換します。この場合、数値を整数に変換しました。整数には小数点以下の桁がないため、すべての小数部分が結果から削除されます(小数点以下の文字を含む)。結果は切り上げられていることに注意してください。


    1. SQL Serverに座標(経度/緯度、Googleマップから)を保存するための最良の方法は何ですか?

    2. スキーマ移行を使用してテーブルに事前入力するActiveAndroid

    3. 別のテーブルの外部キーとして使用される自動生成された主キーを判別する方法

    4. Golangで*DB.exec()またはプリペアドステートメントを使用するのはなぜですか?