Перейти к содержимому
Последнее обновление

FORMAT_ROUND

Описание​

Форматирует число по шаблону вида "#,###,###.##", округляет его до указанного количества знаков после запятой и возвращает результат в виде строки.

подсказка

Эта функция поддерживается начиная с версии 3.0.6.

Синтаксис​

FORMAT_ROUND(<number>, <D>)

Параметры​

ПараметрОписание
<number>Число для форматирования
<D>Количество знаков после запятой, диапазон [0, 1024]

Возвращаемое значение​

Возвращает отформатированную строку типа STRING. Особые случаи:

  • Возвращает NULL, если параметр равен NULL
  • Если D равен 0, результат не содержит десятичной точки и дробной части. В линейке Doris 4.1 начиная с версии 4.1.5 входные значения DECIMAL также округляются, когда D равен 0; в более ранних версиях дробная часть могла отбрасываться без округления.
  • Если 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