sql - SQL 查询中的数字整数舍入

标签 sql math rounding

我有一个对像这样的存储过程进行舍入的查询

DECLARE @number int;

SET @number = 918750;

SELECT @number + (100 - @number % 100 )

这将返回 918800

返回的正确值是 918,800。

但是如果@number = 918800,它将变成918900。

我只想将最后 2 位数字向上舍入。

我可以将其更改为仅单个查询吗?

是的,如果我使用

SELECT ROUND(918750 , -2) AS RoundValue;

它返回 918800,但如果我使用

SELECT ROUND(918740 , -2) AS RoundValue;

它返回 918700,而我需要总是向上舍入,所以我需要的结果是 918000

最佳答案

试试这个

DECLARE @number int;

SET @number = 918750;
// Solution 1
select @number -(@number % 100)+iif(@number%100!=0,100,0);

//Solution 2
select ceiling(@number/100.00)*100;

关于sql - SQL 查询中的数字整数舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69779457/

相关文章:

firefox - FireFox 3.6.15+ 中图像的圆 Angular 仍然不起作用?

php - SQL选择查询

mysql - 连续三个左连接返回意外结果

php - MySQL 自动增量更新

c - 在 Windows 10 Pro 上使用 CodeBlocks 在 C 中计算伯努利 nTh 数的最佳方法

optimization - 将 n 舍入为 m 的倍数的有效方法

sql - 在 PostgreSQL 查询中如何从连接中的字段过滤结果

PHP 如何在结果的每 10 行回显不同的图像

performance - 乘加运算的 Haskell 数学性能

javascript - 如何在 JavaScript 中将 0.023 舍入为 0.03