计算SQL Server 2008中的百分比

时间:2015-12-11 17:21:26

标签: sql sql-server sql-server-2008 ssms

尝试查找已修改项目的百分比并在电子邮件提醒中进行设置。在警报的另一部分,百分比工作正常,但这是我遇到问题的线

select CONVERT(NVARCHAR(10), 150) + ' (' + CONVERT(NVARCHAR(50), CONVERT(DECIMAL(12,2), ((50) / 150) * 100)) + '%' + ')'

使用现有变量就是需要转换的原因,我只需在字段所在的位置输入随机值。 150是总项目,50是修改项目。

1 个答案:

答案 0 :(得分:3)

我不确定为什么会出现“随机”值。我能理解意想不到的结果。

这个表达式:

CONVERT(DECIMAL(12,2), ((50) / 150) * 100)

更简单地写为:

0

原因是SQL Server执行整数除法。因此,您需要在进行除法之前转换值。我经常乘以1.0:

CONVERT(DECIMAL(12,2), ((50)*1.0 / 150) * 100)