我在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添加到要转换为整数的数字。