oracle中的turnc,round,floor,ceil,coalesce函数

这四个函数有点类似java中的函数,首先是
trunc(number,[decimals]) 这个函数类似截取函数
number:表示你要输入的数
decimals(小数): 表示你要截取的位数【正数表示小数点向右保留多少位,负数向左依次置零且小数点右边的截断】
eg:

  • select trunc(35.34,1) from dual; result: 35.3
  • select trunc(35.34,3) from dual; result:35.34
  • select trunc(35.34,-1) from dual; result:30
  • select trunc(35.34,-2) from dual; result: 0;


trunc(data,[format]) --这个是针对于日期来说的
data: 是一个日期值
format: 这是一个日期格式

  • 1.select trunc(sysdate) from dual --2016-08-06 今天的日期为2016-08-06
  • 2.select trunc(sysdate, 'mm') from dual --2016-08-01 返回当月第一天.
  • 3.select trunc(sysdate,'yy') from dual --2016-08-01 返回当年第一天
  • 4.select trunc(sysdate,'dd') from dual --2016-08-06 返回当前年月日
  • 5.select trunc(sysdate,'yyyy') from dual --2016-08-01 返回当年第一天
  • 6.select trunc(sysdate,'d') from dual --2016-08-06 (星期天)返回当前星期的第一天
  • 7.select trunc(sysdate, 'hh') from dual --2016-08-06 17:00:00 当前时间为17:35
  • 8.select trunc(sysdate, 'mi') from dual --2016-08-06 17:35:00 TRUNC()函数没有秒的精确


round(number,[decimals]) 这个函数其实就是一个四舍五入函数
number: 要处理的数值
decimals: 四舍五入后,要保留几位

  • select round(123.346,0) from dual; result: 0
  • select round(123.346,2) from dual; result: 123.35
  • select round(-123.346,2) from dual; result: -123.35


ceil和floor函数
ceil(n) 取大于等于n的最小整数
floor(n) 取小于等于n的最大整数

eg:

  • select ceil(34.3) from dual; result: 35
  • select floor(34.3) from dual; result: 34        

coalesce: 

          COALESCE (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。

          使用COALESCE在于大部分包含空值的表达式最终将返回空值。

eg:

    SELECT COALESCE(NULL,NULL,3,4,5) FROM dual  result: 3

原文地址:https://www.cnblogs.com/yaobolove/p/5778174.html