2017-03-13 77 views
1

我正在使用SQL-Server 2008 R2TSQL自定义四舍五入

我需要实现以下四舍五入。如果小数点后第一位数是0应该四舍五入到下侧,如果高于或等于1,应一轮较高一侧,样本数据:

3.09 ---> 3 
3.1 ---> 4 
0  ---> 0 
3.005 ---> 3 
668.15 ---> 669 

什么是最简单的方法去实现它?

我一直试图做这样的事情:

SELECT CEILING(3.09) -- this is incorrect, returning 4 instead of 3 
SELECT ROUND(3.09,0) -- with 3.09 is ok, but if I'm trying to round 3.1 It still returning 3.00 instead of 4 

也许在某种程度上可以结合我呢?或者我需要任何其他功能?

+0

什么_higher_和_lower_相对于负值意味着什么呢? – HABO

回答

4
SELECT ROUND(val + 0.4, 0) rnd_val 
FROM (
    VALUES 
    (3.09), 
    (3.1 ), 
    (0), 
    (3.005), 
    (668.15) 
)v (val) 

enter image description here

+0

简单辉煌! – Venu

+0

谢谢你,工作。 – Infinity