#Oracle开发中遇到的非空问题小结
今日在使用oracle开发过程中遇到的一个小的问题,由于之前开发人员代码中的疏忽,在记录日志的时候,因为我们是调不同的运营商的接口,不同的运营商回调我们系统的接口,貌似不同运营商回调的接口是不同开发人员开发的,导致有一个记录字段有的存储了,有的没有存储,昨天在做报表的时候,要过滤掉某个运营商的信息,还好那个运营商的信息存储了,信息存储的变量值为0,所以我就使用oracle的判断条件某某字段不等于0,但是在发现结果的时候,数据量少的可怜,后来百度了一下,才发现oracle中如果字段为空的话的,数据库自动会帮你转换为0,所以那些没有存储上的字段在查询的时候都被数据库自动转换为0了,后来使用了oracle的一个函数解决了以上问题。
NVL
函数的介绍
-
函数格式:
NVL(expr1,expr2)
介绍:如果第一个参数为空,那么则显示第二个参数的值,如果第一个参数不为空,则显示第一个参数本来的值。
另外在找到NVL
函数的时候发现了他的延伸函数
NVL2
函数的介绍
-
函数格式:
NVL(expr1,expr2)
介绍:如果第一个参数为空,那么则显示第二个参数的值,如果第一个参数不为空,则显示第三个参数的值。
NULLIF
函数的介绍
-
函数格式:
NULLIF(exp1,expr2)
介绍:如果exp1和exp2相等则返回空(NULL),否则返回第一个值。
Coalesce
函数
-
函数格式:Coalesce(expr1, expr2, expr3…… exprn)
介绍:表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。返回表达式中第一个非空表达式,