メインコンテンツまでスキップ
に最終更新

FORMAT_ROUND

説明​

数値を「#,###,###.##」のような形式に整形し、指定した小数点以下の桁数に丸めて、文字列として返します。

ヒント

この関数はバージョン 3.0.6 以降でサポートされています。

構文​

FORMAT_ROUND(<number>, <D>)

パラメータ​

パラメータ説明
<number>整形する数値
<D>小数点以下の桁数。範囲は [0, 1024]

戻り値​

STRING 型の整形された文字列を返します。特殊なケースは次のとおりです。

  • パラメータが NULL の場合は NULL を返します。
  • D が 0 の場合、結果に小数点や小数部は含まれません。Doris 4.1 系の 4.1.5 以降では、D が 0 のとき DECIMAL 入力も丸められます。それ以前のバージョンでは、丸めずに小数部を切り捨てることがありました。
  • D が [0, 1024] の範囲外の場合、引数がこの範囲内である必要があることを示すエラーが返されます。

例​

select format_round(17014116, 2);
+---------------------------+
| format_round(17014116, 2) |
+---------------------------+
| 17,014,116.00 |
+---------------------------+
select format_round(1123.456, 2);
+---------------------------+
| format_round(1123.456, 2) |
+---------------------------+
| 1,123.46 |
+---------------------------+
select format_round(1123.4, 2);
+-------------------------+
| format_round(1123.4, 2) |
+-------------------------+
| 1,123.40 |
+-------------------------+
select format_round(123456, 0);
+-------------------------+
| format_round(123456, 0) |
+-------------------------+
| 123,456 |
+-------------------------+
select format_round(123456, 3);
+-------------------------+
| format_round(123456, 3) |
+-------------------------+
| 123,456.000 |
+-------------------------+
select format_round(123456.123456, 0);
+--------------------------------+
| format_round(123456.123456, 0) |
+--------------------------------+
| 123,456 |
+--------------------------------+
select format_round(123456.123456, 3);
+--------------------------------+
| format_round(123456.123456, 3) |
+--------------------------------+
| 123,456.123 |
+--------------------------------+
select format_round(123456.123456, 6);
+--------------------------------+
| format_round(123456.123456, 6) |
+--------------------------------+
| 123,456.123456 |
+--------------------------------+
SELECT format_round(-0.01, -1);
ERROR 1105 (HY000): errCode = 2, detailMessage = (127.0.0.1)[INVALID_ARGUMENT]The second argument is -1, it should be in range [0, 1024].
SELECT format_round(-0.01, -1500);
ERROR 1105 (HY000): errCode = 2, detailMessage = (127.0.0.1)[INVALID_ARGUMENT]The second argument is -1500, it should be in range [0, 1024].

DECIMAL 入力を小数点以下ゼロ桁に丸める:

SELECT FORMAT_ROUND(CAST(1.9 AS DECIMAL(9, 1)), 0),
FORMAT_ROUND(CAST(-1.9 AS DECIMAL(9, 1)), 0),
FORMAT_ROUND(CAST(1.4 AS DECIMAL(9, 1)), 0),
FORMAT_ROUND(CAST(-1.4 AS DECIMAL(9, 1)), 0);
2    -2    1    -1

NULL 入力:

SELECT FORMAT_ROUND(NULL, 2);
NULL