SQL查询中的循环整数值

时间:2015-08-28 17:29:50

标签: sql-server

我希望在SQL Query中获得以下结果。

如果数字是121,那么查询应该返回130

如果数字是125,那么查询应该返回130

如果number为128,那么查询应该返回130

如果number为130,那么查询应该返回130

如果number为137,那么查询应该返回140

如果number为140,那么查询应该返回140

3 个答案:

答案 0 :(得分:0)

使用FLOOR函数进行一些数学运算,如下所示

select floor((121 + 9) / 10) * 10; --130

SQL FIDDLE DEMO

答案 1 :(得分:0)

您需要ROUND(number, -1)

  

ROUND - 将正值或负值舍入到特定长度并接受三个值:

     

圆的值

     

正数或负数

     

此数据类型可以是int(小,小,大),十进制,数字,金钱或小钱币

     

舍入时的精度

     

小数点右侧的正数轮次

     

小数点左侧的负数轮次

     

当该值不为0或未包含

时,会将值截断为舍入

<强> SqlFiddleDemo

SELECT 
    num
    ,[rounded] = ROUND(num, -1)
FROM (VALUES (121), (125), (128), (130), (137), (140)) AS tab(num)

答案 2 :(得分:0)

当你处理整数数学时,你甚至不需要floor()函数。

(num + 9) / 10 * 10

或者您可以将其视为找到数十补码并将其添加到原始数字。

num + (10 - num % 10) % 10