我必须遗漏一些明显的东西。
select CEILING(85/30) = 2
85/30 = 2.83333
我希望值为 3。
CEILING 功能不应该为我圆润吗?
我必须遗漏一些明显的东西。
select CEILING(85/30) = 2
85/30 = 2.83333
我希望值为 3。
CEILING 功能不应该为我圆润吗?
尝试
SELECT CEILING(85.0/30)
为了比较
SELECT 85.0 / 30, 85 / 30
第一个示例使用浮点数,第二个示例使用整数,因此在达到上限函数之前对结果进行四舍五入。你所做的是
SELECT CEILING(2)
而不是
SELECT CEILING(2.833333)
将其更改为:
select CEILING(85/30.0)
INT / INT 产生一个 INT,因此 85/30 向下舍入(FLOOR)。
使用一些类型化参数,您就不必担心如何输入数据。这是山姆
DECLARE @int_num integer
DECLARE @int_dem integer
DECLARE @dec_num decimal(18,0)
DECLARE @dec_dem decimal(18,0)
SET @int_num = 85
SET @int_dem = 30
SET @dec_num = 85
SET @dec_dem = 30
SELECT CEILING(@int_num / @int_dem) AS int_div, CEILING(@dec_num / @dec_dem) AS dec_div
int_div | dec_div
----------------------
2 | 3