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

MariaDBでのFORMAT()のしくみ

    MariaDBでは、FORMAT() は、指定された数値を文字列としてフォーマットして返す組み込みの文字列関数です。

    2つの引数が必要であり、オプションの3番目の引数を受け入れます。 1つ目はフォーマットする数値、2つ目は小数点以下の桁数、(オプションの)3つ目はロケールです。

    構文

    構文は次のようになります:

    FORMAT(num, decimal_position[, locale])

    ここで、num は数値です。decimal_position は、数値を四捨五入する小数点以下の桁数であり、locale は、数値の書式設定に使用するオプションのロケールです(ロケールが異なれば、数値の書式設定にも異なる規則が使用されます)。

    基本的な例は次のとおりです。

    SELECT FORMAT(1234.5678, 2);

    結果:

    +----------------------+
    | FORMAT(1234.5678, 2) |
    +----------------------+
    | 1,234.57             |
    +----------------------+

    ここでは、FORMAT() 千単位の区切り文字にコンマを追加しました。また、数値を小数点以下2桁に丸めました(2番目の引数として2を指定したため)。

    小数部分の削除

    小数部(および関連する小数点)を削除するには、0を使用します (ゼロ)2番目の引数として:

    SELECT FORMAT(1234.5678, 0);

    結果:

    +----------------------+
    | FORMAT(1234.5678, 0) |
    +----------------------+
    | 1,235                |
    +----------------------+

    小数点以下の桁数の追加

    2番目の引数が最初の引数の小数点以下の桁数よりも大きい場合、結果にゼロが追加され、目的の小数点以下の桁数が反映されます。

    SELECT 
        FORMAT(1234, 2),
        FORMAT(1234.56, 4),
        FORMAT(1234.56, 8);

    結果:

    +-----------------+--------------------+--------------------+
    | FORMAT(1234, 2) | FORMAT(1234.56, 4) | FORMAT(1234.56, 8) |
    +-----------------+--------------------+--------------------+
    | 1,234.00        | 1,234.5600         | 1,234.56000000     |
    +-----------------+--------------------+--------------------+

    ロケールを指定

    オプションで、3番目の引数を渡して、フォーマットに使用するロケールを指定できます。

    例:

    SELECT 
        FORMAT(1234567.8912, 2, 'da_DK') AS "da_DK",
        FORMAT(1234567.8912, 2, 'rm_CH') AS "rm_CH",
        FORMAT(1234567.8912, 2, 'es_BO') AS "es_BO",
        FORMAT(1234567.8912, 2, 'ar_SA') AS "ar_SA";

    結果:

    +--------------+--------------+------------+------------+
    | da_DK        | rm_CH        | es_BO      | ar_SA      |
    +--------------+--------------+------------+------------+
    | 1.234.567,89 | 1'234'567,89 | 1234567,89 | 1234567.89 |
    +--------------+--------------+------------+------------+

    非数値引数

    FORMAT() 数値のみをフォーマットします。たとえば、文字列を指定すると、0になります。 返されます。ただし、指定された小数点以下の桁数にフォーマットされたままです:

    SELECT 
        FORMAT("Twenty five", 0),
        FORMAT("Twenty five", 2),
        FORMAT("Twenty five", 4);

    結果:

    +--------------------------+--------------------------+--------------------------+
    | FORMAT("Twenty five", 0) | FORMAT("Twenty five", 2) | FORMAT("Twenty five", 4) |
    +--------------------------+--------------------------+--------------------------+
    | 0                        | 0.00                     | 0.0000                   |
    +--------------------------+--------------------------+--------------------------+

    ヌル引数

    nullを提供する 最初の2つの引数のいずれかがnullになるため :

    SELECT 
        FORMAT(null, 2),
        FORMAT(25, null);

    結果:

    +-----------------+------------------+
    | FORMAT(null, 2) | FORMAT(25, null) |
    +-----------------+------------------+
    | NULL            | NULL             |
    +-----------------+------------------+

    ただし、nullを渡す 3番目の引数は結果に影響しないため:

    SELECT FORMAT(25, 2, null);

    結果:

    +---------------------+
    | FORMAT(25, 2, null) |
    +---------------------+
    | 25.00               |
    +---------------------+

    引数を1つだけ提供する

    引数を1つ指定すると、エラーが発生します:

    SELECT FORMAT(1234.56);

    結果:

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

    引数を提供しない

    FORMAT()を呼び出す 引数を渡さないとエラーが発生します:

    SELECT FORMAT();

    結果:

    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

    1. 複数のテーブルからのSQLINSERTINTO

    2. 7つのSQLServerソートの内部–パート1

    3. Ubuntu16.10でPostgreSQLを9.6から10.0にアップグレードします

    4. Symfony 2.0でデータベースをpostgresqlに変更するにはどうすればよいですか?