这四个函数有点类似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