我在 Select 中使用以下行,它返回带小数的数字, 例如33.33333。
如何在选择中将其舍入并转换为整数,以便没有小数,例如在上面的例子中它应该返回 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
关于SQL Server : round decimal number and convert to int (within Select),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23154499/