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

PostgreSQLでコンマを使用して数値をフォーマットする

    PostgreSQLでは、 TO_CHAR()を使用できます 指定された形式で数値をフォーマットする関数。これには、関連する場所でのカンマによる数値のフォーマットが含まれます。

    PostgreSQLにはmoneyもあります 現在のロケールを使用して値を出力するデータ型。これには、使用されているロケールに基づいて、適切な場所にコンマを含めることができます。

    TO_CHAR() 機能

    TO_CHAR()の使用例を次に示します。 カンマで数値を出力する関数:

    SELECT TO_CHAR(123456.78, 'fm999G999D99');

    結果:

    123,456.78

    2番目の引数は、最初の引数のフォーマット方法を決定する一連の数値テンプレートパターンで構成されています。

    ここでは、 Gを使用しました ロケール対応のグループ区切り文字(「千単位の区切り文字」とも呼ばれます)のテンプレートパターン。カンマ()を使用することもできます )、しかしそれはロケールを認識していなかったでしょう。

    Dも使用しました ロケール対応の小数点記号のテンプレートパターン。

    この場合、 fmも使用しました (「FillMode」の略)結果に自動的に適用された可能性のある末尾のゼロと先頭の空白を抑制します。

    9 テンプレートパターンは各桁用です。 0を使用できます 代わりに、先行ゼロを含めたい場合。

    G およびD テンプレートパターンはロケールに対応しており、グループと小数点に適切な文字を生成できます。

    これが私の意味を示す例です:

    SET lc_numeric = 'fr_FR';
    SELECT TO_CHAR(123456.78, 'fm999G999D99');

    結果:

    123.456,78

    現在、グループ区切り文字はピリオド/ピリオドで表され、10進数の区切り文字はコンマで表されます。これは、 lc_numericを変更したためです。 fr_FRを使用する変数 (フランスの場合)、このようにグループ区切り文字と小数点を表すのはフランスの習慣です。

    ロケールが異なれば、数値の書式設定の規則も異なり、 G およびD フォーマット修飾子は、グループセパレータと10進数のセパレータに使用する文字を決定できます。

    お金 データ型

    PostgreSQLにはお金があります ロケール対応の方法でフォーマットされた値を出力するデータ型。

    例:

    SET lc_monetary = 'en_US';
    SELECT CAST(123456.78 AS money);

    結果:

    $123,456.78

    それでは、 lc_monetaryを変更しましょう。 変数を入力して、これが出力にどのように影響するかを確認してください:

    SET lc_monetary = 'fr_FR';
    SELECT CAST(123456.78 AS money);

    結果:

    123 456,78 Eu

    この場合、グループ区切り文字はスペースで表され、10進数の区切り文字はカンマです。


    1. MySQLの1つを除くすべての列を選択しますか?

    2. アプリケーションでのWhere式の重複を排除

    3. インメモリOLTP:SQLServer2016の新機能

    4. グループ関数を使用したデータの集約(oracleによるグループ化)