SQL 服务器:当参数为零时,为什么 FORMAT return 是一个空字符串?

SQL Server: Why does FORMAT return an empty string when the parameter is a zero?

在将数字转换为文本时,我遇到了一个奇怪的错误。

每当数字为零时,FORMAT returns 一个空字符串,而不是 '0'

这种行为有原因吗?
我是否错误地使用了 FORMAT 函数?

SELECT FORMAT ( 1 , N'#.######################' )  /* result '1' */

SELECT FORMAT ( 1E0 , N'#.######################' )  /* result '1' */

SELECT FORMAT ( 1.0 , N'#.######################' )  /* result '1' */

SELECT FORMAT ( 0 , N'#.######################' )  /* result '' */

SELECT FORMAT ( 0E0 , N'#.######################' )  /* result '' */

SELECT FORMAT ( 0.0 , N'#.######################' )  /* result '' */

#.##### 生成了我们需要的样式,因此我们希望尽可能保留它。

作为解决方法,我手动检查零 - 但这很烦人,而且有点不可扩展。

# 不填零而 0 填零。我想你想要的是:

SELECT FORMAT ( 0 , N'0.######################' ) 

https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-numeric-format-strings