记录工作中点滴。千里之行始于足下
Orcale 中 NVL函数 、months_between、trunc函数用法
1、NVL(表达式A,表达式B) 如果表达式A为空值,NVL返回值为表达式B的值,否则返回表达式A的值。该函数的目的是把一个空值(null)转换成一个实际的值。其表达式的值可以是数字型、字符型和日期型。但是表达式A和表达式B的数据类型必须为同一个类型。 例: nvl(clue_num,0):如果clue_num为空,则返回0;否则返回clue_num的值
例:nvl(d.PolApplyDate, d.CVALIDATE)
2、NVL2(表达式A,表达式B,表达式C) 如果表达式A为空,则返回表达式C的值;如果表达式A不为空,则返回表达式B的值。 例: nvl(sex,0,1):如果sex为空,则返回1;否则返回0
3、MONTHS_BETWEEN函数返回两个日期之间的月份数。
例:months_between(nvl(d.PolApplyDate, d.CVALIDATE)
4、TRUNC(for number)
4.1 TRUNC函数返回处理后的数值,其工作机制与ROUND函数极为类似,只是该函数不对指定小数前或后的部分做相应舍入选择处理,而统统截去。 其具体的语法格式如下 TRUNC(number[,decimals]) 其中: number 待做截取处理的数值 decimals 指明需保留小数点后面的位数。可选项,忽略它则截去所有的小数部分 下面是该函数的使用情况: TRUNC(89.985,2)=89.98
TRUNC(89.985)=89
TRUNC(89.985,-1)=80
4.2TRUNC(date[,fmt]) 其中: date 一个日期值 fmt 日期格式,该日期将由指定的元素格式所截去。忽略它则由最近的日期截去 下面是该函数的使用情况: TRUNC(TO_DATE(’24-Nov-1999 08:00 pm’,’dd-mon-yyyy hh:mi am’)) =’24-Nov-1999 12:00:00 am’ TRUNC(TO_DATE(’24-Nov-1999 08:37 pm’,’dd-mon-yyyy hh:mi am’,’hh’)) =’24-Nov-1999 08:00:00 am’
三个函数合起来使用案例:
select trunc(months_between(nvl(d.PolApplyDate, d.CVALIDATE), b.birthday) from d , b / 12 -- 计算投保年龄
网友评论