SQL中如何以0.5为单位进行四舍五入计算

时间:2022-08-15 11:05:55
求SQL中如何将某一列数据按照0.5为单位进行无条件舍入折算,比如,1.78折算为1.5,2.35折算为2,2.56折算为2.5这样的方式;求解。

4 个解决方案

#1


select (case when A-cast(A as int)>0.5 then cast(cast(A as int) as decimal)+0.5 
else cast(cast(A as int) as decimal) end ) as col1 
from t1

#2


这个肯定要你自己写了,写个自定义函数即可

#3


DECLARE @T TABLE(Col1 DECIMAL(18,2))
INSERT INTO @T SELECT 1.78
INSERT INTO @T SELECT 2.35
INSERT INTO @T SELECT 2.56

SELECT CAST(Col1/0.5 AS INT)*0.5 FROM @T
/*
1.5
2.0
2.5
*/

#4


#3的方法很好

#1


select (case when A-cast(A as int)>0.5 then cast(cast(A as int) as decimal)+0.5 
else cast(cast(A as int) as decimal) end ) as col1 
from t1

#2


这个肯定要你自己写了,写个自定义函数即可

#3


DECLARE @T TABLE(Col1 DECIMAL(18,2))
INSERT INTO @T SELECT 1.78
INSERT INTO @T SELECT 2.35
INSERT INTO @T SELECT 2.56

SELECT CAST(Col1/0.5 AS INT)*0.5 FROM @T
/*
1.5
2.0
2.5
*/

#4


#3的方法很好