SQL中的3个取整函数(Ceiling、Floor和Round)的区别
1.Ceiling()函数
Ceiling,英文中,是天花板的意思,有上限的意思,所以,此函数是向上取整,它返回的是大于或等于函数参数,并且与之最接近的整数。
示例:
1 SELECT CEILING(123.45), CEILING(-123.45), CEILING(0.0);
结果:
2.Floor()函数
floor,在英文中,是地面,地板的意思,有下面的意思,所以,此函数是向下取整,它返回的是小于或等于函数参数,并且与之最接近的整数。
floor函数在数学中又称高斯函数。
示例:
1 SELECT FLOOR(123.45), FLOOR(-123.45), FLOOR(0.0);
结果:
3.Round()函数
round,在英文中是有大约,环绕,在某某四周,附近的意思,所以,可以取其大约的意思,在函数中是四舍五入。
不过,round函数与上述两个函数有区别。区别是,round函数可以有2个或者3个参数。
(1)round函数有2个参数,round(numberic_expression,length)
numberic_expression表示数字表达式;
length表示数值表达式精确到的位数。
length是正值,表示精确到小数点往右的位数;
length是负值,表示精确到小数点往左的位数;
示例:
1 --length为正 2 SELECT ROUND(123.45,1), ROUND(-123.45,1), ROUND(0.0,1); 3 --length为负 4 SELECT ROUND(123.45,-1), ROUND(-123.45,-1), ROUND(0.0,-1);
结果:
(2)round函数有3个参数,round(numberic_expression,length,function)
nunberic_expression和length含义同上;
function数据类型必须是整型(tinyint,smallint,int)
(a). function=0(默认是零),round函数功能依旧;
(b).function !=0,表示round函数精确到length位数,不对后面数位进行四舍五入,直接截掉。
示例:
1 --function默认是0 2 SELECT ROUND(123.45,1), ROUND(-123.45,1), ROUND(0.0,1); 3 --function人为设定为0 4 SELECT ROUND(123.45,1,0), ROUND(-123.45,1,0), ROUND(0.0,1,0); 5 --function人为设定为非零数字1,length为正 6 SELECT ROUND(123.45,1,1), ROUND(-123.45,1,1), ROUND(0.0,1,1); 7 --function人为设定为非零数字1,length为负 8 SELECT ROUND(123.45,-1,1), ROUND(-123.45,-1,1), ROUND(0.0,-1,1);
结果:
三个函数的英文定义:
CEILING ( numeric_expression ): This function returns the smallest integer greater than, or equal to, the specified numeric expression.
FLOOR ( numeric_expression ): This funcion returns the largest integer less than or equal to the specified numeric expression.
ROUND ( numeric_expression , length [ ,function ] ):This function returns a numeric value, rounded to the specified length or precision.
上述3个取整函数,是个通用函数,不仅在SQL中,在各种编程语言中都有应用。
可以根据需要去检索相关语言领域的文献。
参考文献:
2.FLOOR()
3.Round()
4.取整函数