在sql server中条件为ceilling或floor

时间:2015-07-01 04:59:59

标签: sql-server tsql

我有这样的查询:

select cast(a as Float)/cast(b as Float) as c from x

这里我想应用一个条件。如果c点之后的值为> = 5,例如1.55 然后我将申请ceilling否则例如1.45我将申请楼层 我尝试了round(a/b,0),但没有返回预期的结果

2 个答案:

答案 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 

REFER