使用T-SQL如何计算测试成绩百分比?

时间:2010-09-28 15:05:11

标签: sql sql-server tsql integer-division

它应该是一个简单的任务,或简单的谷歌搜索,我已经空了。我想简单地计算一个等级百分比。我正在尝试使用:

Select round((133 / 150), 2) * 100

结果为0.我试图计算得分为89%。我已经尝试了多种组合,我开始认为它要么太复杂,不能用t-sql,要么就是不可能。我错过了什么?

2 个答案:

答案 0 :(得分:4)

试试这个:

Select round((cast(133 as numeric(20,8))/ cast(150 as numeric(20,8))) * 100, 2)

当您需要小数值时,您在示例中使用整数。有关详细信息,请参阅here

答案 1 :(得分:3)

尝试:

Select round(133.0 / 150) * 100 

int除以intint,而1/2 = 0(整数截断)

更一般地说,如果你确保分子是一个浮点数(实数/十进制):

Select round(CAST(integervalue as real) / 150) * 100