FORMAT
Округляет число и форматирует его как строку с разделителями разрядов.
MySQL 8.1
FORMAT(num, decimals[, locale])Параметры
- numDECIMAL
- Форматируемое число
- decimalsINT
- Количество знаков после запятой, отрицательное считается 0
- localeVARCHARнеобязательный
- Языковые правила записи, например de_DE или ru_RU, по умолчанию en_US
Возвращаемое значение
Строка вида 1,234,567.89; NULL, если num равно NULL
Примеры
Разделители разрядов
MySQL 8.1
SELECT FORMAT(1234567.891, 2) AS formatted;Немецкая и русская запись
MySQL 8.1
SELECT FORMAT(1234567.891, 2, 'de_DE') AS de,
FORMAT(1234567.891, 2, 'ru_RU') AS ru;Траты каждого члена семьи
MySQL 8.1
SELECT family_member,
FORMAT(SUM(amount * unit_price), 0) AS spent
FROM Payments
GROUP BY family_member
ORDER BY SUM(amount * unit_price) DESC;Подробности
Результат — строка, поэтому сортировать и сравнивать по нему как по числу нельзя: '9,000' окажется больше '10,000'. Сортируйте по исходному выражению, а FORMAT используйте только для вывода. Половина округляется от нуля, как у ROUND.