如何无需手动字符串操作将数字转为易读百分比?(T-SQL FORMAT等价实现)
无需手动字符串拼接的数字百分比格式化方案
我需要找到一种无需手动字符串操作的方法,将数字格式化为人类易读的百分比形式,替代下面这种手动拼接的写法:
SELECT ROUND(100.0 * number_col, 2) || '%'
要求实现和T-SQL中FORMAT函数搭配**百分比格式说明符(P)**完全等价的效果,具体包括:
- 默认保留两位小数,自动将数值乘以100后添加百分号
- 支持指定小数位数(例如
P3表示保留三位小数) - 输入为NULL时返回NULL
以下是T-SQL中FORMAT函数的示例代码及对应输出效果:
SELECT s.c, FORMAT(s.c, 'P') AS c_format_P, FORMAT(s.c, 'P3') AS c_format_P3 FROM (VALUES (1.2),(0.5), (0.25263), (0.10001), (0), (NULL)) AS s(c);
输出结果:
| c | c_format_P | c_format_P3 |
|---|---|---|
| 1.20000 | 120.00% | 120.000% |
| 0.50000 | 50.00% | 50.000% |
| 0.25263 | 25.26% | 25.263% |
| 0.10001 | 10.00% | 10.001% |
| 0.00000 | 0.00% | 0.000% |
| null | null | null |
内容的提问来源于stack exchange,提问作者Lukasz Szozda
相关产品推荐
相关产品推荐

