2013-02-26 271 views
4

我得失去一些明顯的東西。四捨五入TSQL

select CEILING(85/30) = 2 

85/30 = 2.83333 

我想要的值是3。

不宜吊頂功能圍捕給我嗎?

回答

12

嘗試

SELECT CEILING(85.0/30) 

併爲比較

SELECT 85.0/30, 85/30 

第一個例子使用浮筒,第二個使用整數,因此上限函數被擊中之前的結果進行舍入。你要做的就是

SELECT CEILING(2) 

不是

SELECT CEILING(2.833333) 
3

更改它:

select CEILING(85/30.0) 

INT/INT產生一個INT,所以三十零分之八十五回合下來(樓)。

1

使用一些類型參數,您不必擔心如何輸入數據。這裏是sam

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