代码之家  ›  专栏  ›  技术社区  ›  Giffyguy

SQL Server:当参数为零时,为什么FORMAT返回空字符串?

  •  1
  • Giffyguy  · 技术社区  · 7 年前

    我在处理一个奇怪的错误,当把数字转换成文本。

    当数字为零时, FORMAT 返回空字符串,而不是 '0'


    我在用那个吗 功能不正确?

    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 '' */
    

    #.##### 生产的正是我们需要的样式,所以如果可能的话,我们希望保留这种样式。

    1 回复  |  直到 7 年前
        1
  •  3
  •   Andrew    7 年前

    这个 # 0 做。我想你想要的是:

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

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

    推荐文章