SQL 查询中的整数整数
Round Up Number Integer in SQL query
我有一个类似这样的存储过程汇总查询
DECLARE @number int;
SET @number = 918750;
SELECT @number + (100 - @number % 100 )
这个returns 918800
returned 的正确值为 918,800。
但如果@number = 918800,它将变为 918900。
我只希望将最后一位数字向上舍入。
我可以改成单查询吗?
是的,如果我使用
SELECT ROUND(918750 , -2) AS RoundValue;
它return 918800,但如果我使用
SELECT ROUND(918740 , -2) AS RoundValue;
它 return 918700,而我需要的总是四舍五入所以我需要的结果是 918000
如果您正在使用 Oracle、MySQL 和 PostgreSQL 中的任何一个,您可以使用 ROUND()
函数。
像这样
SELECT ROUND(918750 , -2)
此查询将产生 918800 个结果。 -2
表示最后两位向上取整。
试试这个
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;
试试这个
DECLARE @Number INT = 435667
SELECT CONVERT(INT, 100 * ROUND(@Number / 100.0, 0))
我有一个类似这样的存储过程汇总查询
DECLARE @number int;
SET @number = 918750;
SELECT @number + (100 - @number % 100 )
这个returns 918800
returned 的正确值为 918,800。
但如果@number = 918800,它将变为 918900。
我只希望将最后一位数字向上舍入。
我可以改成单查询吗?
是的,如果我使用
SELECT ROUND(918750 , -2) AS RoundValue;
它return 918800,但如果我使用
SELECT ROUND(918740 , -2) AS RoundValue;
它 return 918700,而我需要的总是四舍五入所以我需要的结果是 918000
如果您正在使用 Oracle、MySQL 和 PostgreSQL 中的任何一个,您可以使用 ROUND()
函数。
像这样
SELECT ROUND(918750 , -2)
此查询将产生 918800 个结果。 -2
表示最后两位向上取整。
试试这个
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;
试试这个
DECLARE @Number INT = 435667
SELECT CONVERT(INT, 100 * ROUND(@Number / 100.0, 0))