我有一个对像这样的存储过程进行舍入的查询
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/