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