为什么SQLServer为小于1的正值上限返回0?
我从 MS SQL Server 得到了一些意想不到的结果,想知道这是一个错误还是我对某些事情的误解?
使用时,CEILING我会得到所需的效果(四舍五入到最接近的整数),除非我将它用于 > 0 和 < 1 的值,在这种情况下它返回 0 ...
例子:
SELECT CEILING(2/7)
正在返回 0。
SQL Server 2017
谢谢!
回答
SQL Server 进行整数除法。所以,2/7是0,不是某个分数。
相比:
select ceiling(2/7), ceiling(2.0/7)
或者:
select 2/7, 2.0/7