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
在将数字转换为文本时,我遇到了一个奇怪的错误。
每当数字为零时,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