Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server:十进制整数并转换为整数(在Select中)_Sql_Sql Server_Select_Int_Rounding - Fatal编程技术网

SQL Server:十进制整数并转换为整数(在Select中)

SQL 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

我在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 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对你来说,这很容易。好主意!