SQL Server:十进制整数并转换为整数(在Select中)
我在Select中使用以下行,返回一个带小数的数字, e、 g.33.33333 如何在Select和convert-to-integers中对其进行四舍五入,使其没有小数,例如,在上面的示例中,它应该返回33SQL Server:十进制整数并转换为整数(在Select中),sql,sql-server,select,int,rounding,Sql,Sql Server,Select,Int,Rounding,我在Select中使用以下行,返回一个带小数的数字, e、 g.33.33333 如何在Select和convert-to-integers中对其进行四舍五入,使其没有小数,例如,在上面的示例中,它应该返回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
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。转换为
int
不会对数字进行四舍五入,而是将其截断。@Guffa,你说得对,我怎么会错过它+1对你来说,这很容易。好主意!