Oracle取整函数用法案例
oracle涉及到取整的函数主要有4个,两个单参数的(ceil和floor),两个双参数的(trunc和round)。双参数不仅可以取整,也可以取到任一位小数,甚至可以取到任一位整数。这些函数参数为正数时比较好理解,为负数时就要好好想一想了,不要用错了,好在用于负数的机会不多。
1、ceil(n)取整(大),取比真值大的最小整数,注意正负数的取值:
如ceil(251.0001)=252,ceil(-251.0001)=-251,ceil(-251.9999)=-251; select ceil(251.0000001) from dual; 结果:252
2、floor(n)取整(小),取比真值小的最大整数,注意正负数的取值:
如floor(251.9999)=251,floor(-251.9999)=-252,floor(-251.0001)=-252;
这两个函数功能正好相反。
记忆恨简单:ceil,天花板,在上面,自然往高了取值;floor,地板,自然往低了取值。
3、trunc(n,p)取指定位置部分(截取),p指定截取数值的位置,p为0时表示截取整数部分,可以或略:
如trunc(251.0001)=251,trunc(-251.0001)=-251,trunc(-251.9999)=-251; 当p为正数时,表示截取时保留小数的位数;当p为负数时,表示截取时保留整数的位置,例如: trunc(251.1234,2)=251.12,trunc(251.1234,-2)=200,trunc(251.1234,-1)=250;
4、round(n,p)取指定位置部分(四舍五入),同trunc类似,p指定截取数值的位置,p为0时表示截取整数部分,可以或略:
round(251.34)=251,round(251.56)=252,round(-251.34)=-251,round(-251.56)=-252; 当p为正数时,表示截取时保留小数的位数;当p为负数时,表示截取时保留整数的位置,例如: round(251.1234,2)=251.12,round(251.1234,-2)=300,round(251.1234,-1)=250; 四舍五入时只考虑绝对值,不用关心正还是负。
记忆方法:trunc,截取,相当于刀切到那儿是哪儿,不拖泥带水;round,圆,把后面的值圆回来,所以四舍五入。
下面是四个函数的取整案例:
select trunc(251.75),round(251.75),floor(251.000001),ceil(251.000001) from dual;
结果:251,252,251,252
select trunc(-251.75),round(-251.75),floor(-251.000001),ceil(-251.000001) from dual;
结果:-251,-252,-252,-251
5、最后顺便说一下取余函数mod(n,m),n除以m后的余数,例如:mod(91,30)=1
一般n,m是整数,不过,小数也可以,例如:
select mod(90.32,26.3) from dual;
结果是:11.42
总结
到此这篇关于Oracle取整函数用法的文章就介绍到这了,更多相关Oracle取整函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
在客户端配置TNS测试报错ORA-12170:TNS:连接超时
在Red Hat Enterprise Linux Server Releae 5.5 成功安装ORACLE 10g 后,在客户端配置TNS后,测试是否可以连接到数据块服务器,结果报错:ORA-12170:TNS:连接超时2012-12-12
Oracle 解决ORA-00257 Archiver error 报错问题解决
订单投资交易环境进行 impdb 数据泵恢复数据,执行到一半,报错终止,归档策略保留时间较长,或归档频率过高,导致数据库挂载盘符空间不足,本文给大家分享Oracle 解决ORA-00257 Archiver error 报错问题解决,感兴趣的朋友一起看看吧2023-12-12
解决ORA-01747:user.table.column,table.column或列说明无效
这篇文章主要介绍了解决ORA-01747:user.table.column,table.column或列说明无效的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-07-07
oracle 动态AdvStringGrid完美示例 (AdvStringGrid使用技巧/Cells)
本方法实现用常量和常量数组完美创建和控制动态TAdvStringGrid。2009-06-06
Oracle触发器表发生了变化 触发器不能读它的解决方法(必看)
下面小编就为大家带来一篇Oracle触发器表发生了变化 触发器不能读它的解决方法(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-04-04
oracle中where 子句和having子句中的区别介绍
这篇文章主要介绍了在oracle中where 子句和having子句中的区别,本文通过sql语句给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2018-12-12


最新评论