format_number:数字格式化千分位
速查结论
format_number(expr, d) 是模仿 MySQL FORMAT 函数的数字格式化函数。将数字格式化为 #,###,###.## 形式(千分位逗号分隔),四舍五入到 d 位小数。d 也可以是自定义格式字符串。
语法
format_number(expr1, expr2)
参数说明
| 参数 | 说明 |
|---|---|
expr1 | 待格式化的数字 |
expr2 | 小数位数(INT,四舍五入),或自定义格式字符串(如 '##################.###') |
返回值:格式化后的字符串。
Since: 1.5.0
示例
指定小数位数
-- 千分位 + 4位小数(四舍五入)
SELECT format_number(12332.123456, 4);
-- 结果: 12,332.1235
-- 0 位小数
SELECT format_number(12332.5, 0);
-- 结果: 12,333
自定义格式
-- 自定义格式字符串
SELECT format_number(12332.123456, '##################.###');
-- 结果: 12332.123
format_number vs round vs printf 对比
| 函数 | 千分位 | 返回类型 | 适用场景 |
|---|---|---|---|
format_number(x, d) | 有 | STRING | 报表展示、导出 CSV |
round(x, d) | 无 | 同输入类型 | 数值计算、聚合 |
printf(fmt, x) | 无 | STRING | C 风格格式控制 |
SELECT
format_number(12345.678, 2) AS formatted, -- 12,345.68
round(12345.678, 2) AS rounded; -- 12345.68
选型建议:
- 需要千分位展示:用
format_number - 数值计算保留精度:用
round
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

💬加群交流
备注「数据仓库技术」加入社群,每日一道大厂SQL真题
