SQL Server : round decimal number and convert to int (within Select)

标签 sql sql-server select int rounding

我在 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/

相关文章:

sql - 如何修复sql中的 "ORA-02270: no matching unique or primary key for this column-list "错误

sql-server - 选择维度转到列标签而不是 Excel (SSAS) 中的行

sql-server - 存储过程和 Entity Framework 4.0 中的表值参数

MySQL基于最近10个日期的嵌套查询

sql - 这个查询有什么问题?

mysql - 如何对MySQL表数据和列进行转置操作?

sql - 如何在 SQL 中优雅地编写它?

sql-server - 将十进制转换为 Varchar

MySQL SELECT 增量计数器

具有可选列过滤器的 MySQL 参数化 SELECT 查询