如何改变小数点后的位数?

时间:2015-08-03 06:39:27

标签: sql sql-server

我在查询中有这一行:

CASE WHEN count(n.Counter) <> 0 THEN (cast(count(n.Counter) as float)/count(t.Counter)) * 100 ELSE 0 END as percent

我得到的结果如79.565974946。 我希望获得80%的结果(小数点后没有数字,并且&#39;%&#39;符号)。 我怎么能这样做?

4 个答案:

答案 0 :(得分:1)

您需要find然后,因为您正在尝试进行格式化,请在添加%之前转换为字符串:

CONVERT(varchar(20),
ROUND(
CASE WHEN count(n.Counter) <> 0
      THEN (cast(count(n.Counter) as float)/count(t.Counter)) * 100
     ELSE 0 END
,0)) + '%' as percent

此外,这里可能存在拼写错误 - 看起来您正试图避免除以零错误,但是您正在测试错误的操作数(n.Counter而不是t.Counter)所以你可能仍会从这段代码中得到除零。

答案 1 :(得分:1)

如果使用MySQL,只需使用ROUND功能。

CASE WHEN count(n.Counter) <> 0 THEN ROUND(cast(count(n.Counter) as float)/count(t.Counter)) * 100 ELSE 0 END as percent

答案 2 :(得分:1)

您在哪里显示数据?添加%应该在前端应用程序中完成。如果你使用

,只需使用它并将其格式化为fornt
round(
case when count(n.counter) <> 0
      then (cast(count(n.counter) as float)/count(t.counter)) * 100
     else 0 end
,0))

答案 3 :(得分:1)

试试这个:

CASE WHEN count(n.Counter) <> 0 THEN round((cast(count(n.Counter) as float)/count(t.Counter)) * 100,0) ELSE 0 END as percent