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