SQL Server:四舍五入并转换为 int(在 Select 内)

新手上路,请多包涵

我在 Select 中使用以下行,它返回一个带小数的数字,例如 33.33333。

如何在 Select 中舍入它并转换为整数,以便我没有小数,例如在上面的示例中它应该返回 33 ?

 100 * AVG(CASE WHEN col2 = col3 THEN 1.0 ELSE 0.0 END) AS matchPercent

原文由 user2571510 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
1 个回答

您可以使用 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

原文由 Szymon 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进