我在Select中使用以下行,该行返回带小数的数字,例如33.33333。
我如何在Select中四舍五入并转换为整数,这样我就没有小数了,例如在上面的例子中,它应该返回33?
100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END) AS matchPercent
您可以使用ROUND
函数将值四舍五入为整数:
ROUND(INT, 100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END), 0) AS matchPercent
这将保留类型,例如四舍五入的float
将保持为float
。如果您还需要返回int
数据类型(或其他整数数据类型),您还需要转换它:
CONVERT(INT, ROUND(INT, 100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END), 0)) AS matchPercent
使用round
函数对数字进行四舍五入:
ROUND(100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END), 0) AS matchPercent
如果您想先对数字进行四舍五入,然后将其转换为整数,还可以在要转换为整数的数字上加0.5。
下面的语句将十进制值四舍五入到最接近的整数
ROUND(decimalvalue,0)
ROUND(number, decimals, operation)
示例
ROUND(94.503,0)
结果:95
示例
ROUND(94.403,0)
结果:94