SQL 函数的超难有关问题,完全没有头绪

SQL 函数的超难问题,完全没有头绪啊
获取出来的数据

t        job(decimal(18,1))
X       4.0
X       3.6
X       4.1
X       4.5
X       1.5
X       1.1
X       2.5
X       2.0
X       3.7


问题来了

job 列:我现在想把  
问题1:(   X.X>X.0 并且 X.X<X.5  )  结果是 X.0
问题2:(   X.X>X.5 并且 X.X<(X+1)  )  结果是 X.0+1
问题3:(   X.X=X.5 )  结果是 X.5


以下是我想要的结果

t        job(decimal(18,1))
X       4.0
X       4.0
X       4.0
X       4.5
X       1.5
X       1.0
X       2.5
X       2.0
X       4.0


请问大神,应该如何解决?
------解决思路----------------------
--查询
SELECT t
,CASE WHEN job%1=0.5 THEN job
ELSE ROUND(job,0) END
FROM TB

--更新
UPDATE TB
SET job=CASE WHEN job%1=0.5 THEN job
ELSE ROUND(job,0) END
我觉得可以直接CASE,不过,不知道你是要查询还是更新