SQL Server 2016中FORMAT函数#,###格式不显示0值的解决问询
解决FORMAT函数将0显示为空白的问题
实现0正常显示为0的方案
你只需要调整FORMAT函数的格式字符串即可。把你之前使用的类似#,###的格式替换为#,##0,示例代码如下:
FORMAT(your_target_column, '#,##0')
修改后,各类数值的格式化效果都会符合预期:
- 123456789 →
123,456,789 - 负数(如-987654) →
-987,654 - 0 →
0
为什么0会被显示为空白?
问题根源在于你原先使用的格式字符串中的#占位符。#在数字格式规则里代表可选数字位——只有当对应位置存在非零数字时才会被渲染出来。对于数值0而言,所有位都是0,没有符合#要求的非零数字,因此最终输出了空白。
而当你不使用FORMAT函数时,数据库直接输出原始的数字值0,不会经过格式字符串的“过滤逻辑”,所以能够正常显示0。
如果你的字段可能存在NULL值,还可以搭配ISNULL或COALESCE进行兜底处理,但根据你的描述,字段本身是有效的0值,因此仅调整格式字符串就可以解决问题。
内容的提问来源于stack exchange,提问作者Lee Curran
相关产品推荐
相关产品推荐

