【问题标题】:How to format my result for 2 decimals digits after comma如何将我的结果格式化为逗号后的 2 位小数
【发布时间】:2024-01-05 10:49:02
【问题描述】:

我是 SQL 世界的新手,刚开始做查询。

在这种情况下,我正在计算一个数字占其他数字的百分比。

这就是我的做法:

百分比 = ROUND(((NULLIF(SUM(value_1), 0)) / NULLIF(SUM(value_2),0) * 100), 2),

即使我使用 ROUND(),结果还是一样,他们会给我逗号后的 6 位数字:

100.020000
56.800000
-33.330000
100.000000
42.490000

有没有办法用逗号后面的 2 位数字来格式化这些数字?

谢谢!

【问题讨论】:

  • 你在用什么rdbms
  • 我使用的是 SQL Server 2014

标签: sql format decimal


【解决方案1】:

假设你使用 sql server,你可以转换你的结果:

Percentage = Convert(numeric(10, 2), ROUND(((NULLIF(SUM(value_1), 0)) / NULLIF(SUM(value_2),0) * 100), 2))

或者投射它:

Percentage = Cast(ROUND(((NULLIF(SUM(value_1), 0)) / NULLIF(SUM(value_2),0) * 100), 2) AS numeric(10, 2))

【讨论】:

  • 它与 Convert() 一起工作得很好。非常感谢你!我试过 Cast(... AS DECIMAL(10,2)) 但我没有尝试使用数字,但出现错误。谢谢你!