NVL函数
作用:判断某个值是否为空值,若不为空值则输出,若为空值,返回指定值。
详细解释如下:
1、nvl()函数的格式如下:
NVL(expr1,expr2);
2、含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
3、例:
select name,NVL(name,-1) from user;
运行后,结果返回两列数值,若name为空,则返回-1,若name不为空值,则返回其自身。
注意:使用nvl函数的前提是查询到的结果不为空,就是说查询语句本身不能返回null,只有查询记录存在的情况下nvl函数才会对记录中的字段赋值,如果没有记录赋值则为空谈了!
NVL2函数
1、NVL2函数的格式如下:
NVL2(expr1,expr2, expr3)
2、含义是:如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值
3、实例如下:
NVL2(DO_GODATE,NVL2(DO_OUTDATE,ROUND(TO_NUMBER(DO_OUTDATE - DO_GODATE)),ROUND(TO_NUMBER(SYSDATE - DO_GODATE))),0) DO_DAYS,
运行后,如果进场时间为空,则天数为0;如果进场时间不为空则判断出场时间是否为空,进不为空出为空,则天数为当前时间-进场时间;进不为空出不为空,则天数为出时间-进时间
查询日期天数
ROUND(TO_NUMBER(DO_OUTDATE - DO_GODATE)
ROUND(TO_NUMBER(SYSDATE - DO_GODATE))--得到当前时间-进场时间