私は明らかな何かを見逃さなければなりません。
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
最初の例ではfloatを使用し、2番目の例ではintを使用しているため、天井関数がヒットする前に結果が丸められます。あなたがしていることは
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