You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server Express中视图COUNT值计算百分比结果为0.00的原因?

问题原因与解决方法

这是整数除法规则导致的结果:在SQL中,当两个整数类型的数值进行除法运算时,结果会自动取整(只保留整数部分,直接舍去小数部分)。

你这里的tcnt1、tcnt2、tcnt3、tcnt4都是INT类型,所以:

  • tcnt2 / tcnt1 即 12287 / 38347,计算结果小于1,整数除法后直接得到0,乘以100还是0,最后转成decimal(7,2)自然就是0.00。
  • tcnt4 / tcnt3 即 125 / 673,同样结果小于1,整数除法后得到0,最终Pct2也为0.00。

解决方法

只要把除法运算中的任意一个整数转换为小数类型,就能触发浮点除法,得到正确的百分比结果,比如两种常见写法:

方法1:显式转换为decimal类型

SELECT  
    *,
    CONVERT(decimal(7, 2), ((CONVERT(decimal, tcnt2) / tcnt1) * 100)) AS Pct1,
    CONVERT(decimal(7, 2), ((CONVERT(decimal, tcnt4) / tcnt3) * 100)) AS Pct2
FROM 
    dbo.WScnt1, dbo.WScnt2, dbo.WScnt3, dbo.WScnt4;

方法2:用1.0参与运算,自动提升类型

SELECT  
    *,
    CONVERT(decimal(7, 2), ((tcnt2 * 1.0 / tcnt1) * 100)) AS Pct1,
    CONVERT(decimal(7, 2), ((tcnt4 * 1.0 / tcnt3) * 100)) AS Pct2
FROM 
    dbo.WScnt1, dbo.WScnt2, dbo.WScnt3, dbo.WScnt4;

内容的提问来源于stack exchange,提问作者John Sebold

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:36:21