我有这样的查询:
select cast(a as Float)/cast(b as Float) as c from x
这里我想应用一个条件。如果c
点之后的值为> = 5,例如1.55
然后我将申请ceilling否则例如1.45我将申请楼层
我尝试了round(a/b,0)
,但没有返回预期的结果
答案 0 :(得分:0)
确保参数“a”或“b”中的至少一个是CAST作为FLOAT,如下所示:
select ROUND(15.5/CAST(10 AS FLOAT), 0) -- returns 2
select ROUND(14.5/CAST(10 AS FLOAT), 0) -- returns 1
这将确保您获得REAL除法(而不是整数除法)。
答案 1 :(得分:0)
declare @val1 decimal(15,4)
set @val1=1.4
select CASE WHEN @val1-floor(@val1) >0.4 THEN ceiling(@val1) ELSE floor(@val1) END