【问题标题】:Format to significant decimal places in SQL Server?在 SQL Server 中格式化为有效的小数位?
【发布时间】:2015-06-21 01:49:43
【问题描述】:

如何在 SQL Server 中将数字显示到有效位小数?

鉴于MYFIELD 的数据类型为NUMERIC(38,10)

目前的结果:

Select MYFIELD from MYTABLE:
1000.0000000000
1234.5600000000
2000.0000000000

更好的结果(一半):

Select cast(MYFIELD as NUMERIC(38,2)) from MYTABLE:
1000.00
1234.56
2000.00

想要的结果:

Select ??? from MYTABLE:
1000
1234.56
2000

提前致谢。

【问题讨论】:

  • 您想将其限制为小数点后 2 位还是应该在小数点后 0-10 位有效?
  • 我的数据与金钱有关,最多只包含 2 位小数。但如果这些小数是“.00”,我想根本不显示小数。
  • 请问,这是否必须发生在数据库上?在我看来,这是一个表示层问题,可以在客户端解决。
  • Serv - 我同意,但是在这种情况下,我正在修复一个“批处理脚本”,它直接从 SQL 输出到文本文件 (csv),所以我正在寻找一个快速的选项:)

标签: sql sql-server decimal number-formatting


【解决方案1】:

出于多种原因,我强烈建议在客户端执行与格式相关的任务。但是,从 SQL Server 2012 开始,您可以这样做:

select MyField, format(MyField, '0.##') as [MyFieldFormatted]
from dbo.MyTable;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-20
    • 2014-12-05
    • 2011-12-17
    • 1970-01-01
    • 2011-03-27
    • 2010-09-28
    • 1970-01-01
    • 2021-06-10
    相关资源
    最近更新 更多