如何在SQL Server中选择舍入数字

时间:2017-05-18 06:39:25

标签: sql sql-server case divide mod

我有一个包含此列的薪水表

EMPLOYEE_NAME    SALARY
------------------------
ANNA             113750
MARRY            124300
BELLA            105100

我想用附近的2000或5000分数来计算工资额。所以对于这种情况,它就像

EMPLOYEE_NAME    SALARY
------------------------
ANNA             114000
MARRY            125000
BELLA            106000

有关其他信息,我使用的是MS SQL Server。请帮我这样做。提前致谢

5 个答案:

答案 0 :(得分:1)

您可以使用CEILING功能。

像:

SELECT EMPLOYEE_NAME CEILING(SALARY)

Read this for further details

以上链接的简短摘要:

  

在SQL Server(Transact-SQL)中,CEILING函数返回大于或等于数字的最小整数值。

答案 1 :(得分:0)

ROUND(向上和向下舍入)不同,CELING函数(您想要向上舍入)没有长度参数(如ROUND(salary, -3)中所示)。因此,除以得到期望的结果:

select employee_name, ceiling(salary / 1000.0) * 1000.0 as salary
from mytable;

答案 2 :(得分:0)

试试这个。

select EMPLOYEE_NAME, ceiling(salary / 1000.0) * 1000.0 as SALARY from table;

答案 3 :(得分:0)

将薪水除以分数。使用天花板来围捕。然后乘以分数。

Declare @salary table (Employee_name nvarchar(50), Salary money)
Declare @fraction money = 5000

insert into @salary
values
('ANNA',             113750),
('MARRY',           124300),
('BELLA',           105100)

update @salary
set Salary = ceiling(salary/@fraction)*@fraction

select * from @salary

答案 4 :(得分:0)

尝试以下CEILING方法:

  DECLARE @fraction MONEY = 1000

   SELECT CEILING(113750/@fraction)*@fraction 
   SELECT CEILING(124300/@fraction)*@fraction
   SELECT CEILING(105100/@fraction)*@fraction